diff --git a/GCC14-1001-libstdc++-compat.patch b/GCC14-1001-libstdc++-compat.patch index 8f0211369e8e8800a8aa8a142687360a465f7f5e..1bbdae5bb4348d6c3366e3992f2f769d81f174b8 100644 --- a/GCC14-1001-libstdc++-compat.patch +++ b/GCC14-1001-libstdc++-compat.patch @@ -1,7 +1,7 @@ -From 00d659acdcd056618edbde8905c6b7d3c4a278d7 Mon Sep 17 00:00:00 2001 +From 7ec360435ae547b830feeb49c0a0346649f1cf75 Mon Sep 17 00:00:00 2001 From: zhaoshujian -Date: Thu, 1 Aug 2024 17:23:31 +0800 -Subject: [PATCH] add nonshared +Date: Tue, 27 Aug 2024 15:56:36 +0800 +Subject: [PATCH] add libstdc++_nonshared patch diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 @@ -17,75 +17,6 @@ index 51a08bcc8..c75dda506 100644 SUBDIRS='glibcxx_SUBDIRS' # These need to be absolute paths, yet at the same time need to -diff --git a/libstdc++-v3/config/cpu/i386/atomicity.h b/libstdc++-v3/config/cpu/i386/atomicity.h -index 79d336681..c65794d67 100644 ---- a/libstdc++-v3/config/cpu/i386/atomicity.h -+++ b/libstdc++-v3/config/cpu/i386/atomicity.h -@@ -1,6 +1,6 @@ --// Low-level functions for atomic operations: x86, x >= 3 version -*- C++ -*- -+// Low-level functions for atomic operations: x86, x >= 4 version -*- C++ -*- - --// Copyright (C) 2003-2024 Free Software Foundation, Inc. -+// Copyright (C) 1999-2024 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 -@@ -28,46 +28,25 @@ namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) - { - _GLIBCXX_BEGIN_NAMESPACE_VERSION - -- template -- struct _Atomicity_lock -- { -- static volatile _Atomic_word _S_atomicity_lock; -- }; -- -- template -- volatile _Atomic_word _Atomicity_lock<__inst>::_S_atomicity_lock = 0; -- -- template volatile _Atomic_word _Atomicity_lock<0>::_S_atomicity_lock; -- - _Atomic_word - __attribute__ ((__unused__)) - __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw () - { -- register _Atomic_word __result, __tmp = 1; -- -- // Obtain the atomic exchange/add spin lock. -- do -- { -- __asm__ __volatile__ ("xchg{l} {%0,%1|%1,%0}" -- : "=m" (_Atomicity_lock<0>::_S_atomicity_lock), -- "+r" (__tmp) -- : "m" (_Atomicity_lock<0>::_S_atomicity_lock)); -- } -- while (__tmp); -- -- __result = *__mem; -- *__mem += __val; -- -- // Release spin lock. -- _Atomicity_lock<0>::_S_atomicity_lock = 0; -- -+ register _Atomic_word __result; -+ __asm__ __volatile__ ("lock; xadd{l} {%0,%1|%1,%0}" -+ : "=r" (__result), "=m" (*__mem) -+ : "0" (__val), "m" (*__mem)); - return __result; - } - - void - __attribute__ ((__unused__)) - __atomic_add(volatile _Atomic_word* __mem, int __val) throw () -- { __exchange_and_add(__mem, __val); } -+ { -+ __asm__ __volatile__ ("lock; add{l} {%1,%0|%0,%1}" -+ : "=m" (*__mem) : "ir" (__val), "m" (*__mem)); -+ } - - _GLIBCXX_END_NAMESPACE_VERSION - } // namespace -+ diff --git a/libstdc++-v3/config/locale/gnu/c_locale.cc b/libstdc++-v3/config/locale/gnu/c_locale.cc index 3c1cb0c85..a86b7b082 100644 --- a/libstdc++-v3/config/locale/gnu/c_locale.cc @@ -324,51 +255,33 @@ diff --git a/libstdc++-v3/scripts/testsuite_flags.in b/libstdc++-v3/scripts/test old mode 100755 new mode 100644 diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am -index 37ba1491d..f5e72f7b8 100644 +index 37ba1491d..e93bcca57 100644 --- a/libstdc++-v3/src/Makefile.am +++ b/libstdc++-v3/src/Makefile.am -@@ -43,7 +43,7 @@ experimental_dir = - endif +@@ -44,7 +44,8 @@ endif ## Keep this list sync'd with acinclude.m4:GLIBCXX_CONFIGURE. --SUBDIRS = c++98 c++11 c++17 c++20 c++23 c++26 \ -+SUBDIRS = c++98 c++11 c++17 c++20 c++23 c++26 nonshared98 nonshared11 nonshared17 nonshared20 nonshared23 nonshared26 \ - $(filesystem_dir) $(backtrace_dir) $(experimental_dir) + SUBDIRS = c++98 c++11 c++17 c++20 c++23 c++26 \ +- $(filesystem_dir) $(backtrace_dir) $(experimental_dir) ++ $(filesystem_dir) $(backtrace_dir) $(experimental_dir) \ ++ nonshared98 nonshared11 nonshared17 nonshared20 nonshared23 nonshared26 # Cross compiler support. -@@ -53,6 +53,10 @@ else + if VTV_CYGMIN +@@ -53,6 +54,9 @@ else toolexeclib_LTLIBRARIES = libstdc++.la endif -+noinst_LTLIBRARIES = libstdc++_nonshared48.la \ -+ libstdc++_nonshared80.la \ ++noinst_LTLIBRARIES = libstdc++_nonshared80.la \ + libstdc++_nonshared110.la + if VTV_CYGMIN vtv_stubs.cc: rm -f $@ -@@ -120,6 +124,51 @@ endif +@@ -120,6 +124,33 @@ endif parallel_compat_sources = \ compatibility-parallel_list.cc compatibility-parallel_list-2.cc -+libstdc___nonshared48_la_SOURCES = -+ -+libstdc___nonshared48_la_LIBADD = \ -+ $(top_builddir)/src/nonshared98/libnonshared98convenience48.la \ -+ $(top_builddir)/src/nonshared11/libnonshared11convenience48.la \ -+ $(top_builddir)/src/nonshared17/libnonshared17convenience48.la \ -+ $(top_builddir)/src/nonshared20/libnonshared20convenience48.la \ -+ $(top_builddir)/src/nonshared23/libnonshared23convenience48.la \ -+ $(top_builddir)/src/nonshared26/libnonshared26convenience48.la -+ -+libstdc___nonshared48_la_DEPENDENCIES = \ -+ $(top_builddir)/src/nonshared98/libnonshared98convenience48.la \ -+ $(top_builddir)/src/nonshared11/libnonshared11convenience48.la \ -+ $(top_builddir)/src/nonshared17/libnonshared17convenience48.la \ -+ $(top_builddir)/src/nonshared20/libnonshared20convenience48.la \ -+ $(top_builddir)/src/nonshared23/libnonshared23convenience48.la \ -+ $(top_builddir)/src/nonshared26/libnonshared26convenience48.la -+ +libstdc___nonshared80_la_SOURCES = + +libstdc___nonshared80_la_LIBADD = \ @@ -400,7 +313,7 @@ index 37ba1491d..f5e72f7b8 100644 cxx98_sources = \ compatibility.cc \ diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in -index 1bdf0daa8..271e7c089 100644 +index 1bdf0daa8..faed28bdc 100644 --- a/libstdc++-v3/src/Makefile.in +++ b/libstdc++-v3/src/Makefile.in @@ -147,7 +147,7 @@ am__uninstall_files_from_dir = { \ @@ -412,7 +325,7 @@ index 1bdf0daa8..271e7c089 100644 am__DEPENDENCIES_1 = @GLIBCXX_LDBL_COMPAT_TRUE@am__objects_1 = compatibility-ldbl.lo am__objects_2 = compatibility.lo compatibility-debug_list.lo \ -@@ -167,6 +167,19 @@ am__objects_6 = $(am__objects_3) $(am__objects_5) +@@ -167,6 +167,16 @@ am__objects_6 = $(am__objects_3) $(am__objects_5) libstdc___la_OBJECTS = $(am_libstdc___la_OBJECTS) @VTV_CYGMIN_FALSE@am_libstdc___la_rpath = -rpath $(toolexeclibdir) @VTV_CYGMIN_TRUE@am_libstdc___la_rpath = -rpath $(toolexeclibdir) @@ -422,29 +335,14 @@ index 1bdf0daa8..271e7c089 100644 +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent -+am__v_lt_1 = -+am_libstdc___nonshared48_la_OBJECTS = -+libstdc___nonshared48_la_OBJECTS = \ -+ $(am_libstdc___nonshared48_la_OBJECTS) ++am__v_lt_1 = +am_libstdc___nonshared80_la_OBJECTS = +libstdc___nonshared80_la_OBJECTS = \ + $(am_libstdc___nonshared80_la_OBJECTS) libvtv_la_LIBADD = @VTV_CYGMIN_TRUE@am_libvtv_la_OBJECTS = vtv_stubs.lo libvtv_la_OBJECTS = $(am_libvtv_la_OBJECTS) -@@ -178,30 +191,46 @@ am__v_P_1 = : - AM_V_GEN = $(am__v_GEN_@AM_V@) - am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) - am__v_GEN_0 = @echo " GEN " $@; --am__v_GEN_1 = -+am__v_GEN_1 = - AM_V_at = $(am__v_at_@AM_V@) - am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) - am__v_at_0 = @ --am__v_at_1 = -+am__v_at_1 = - DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) - depcomp = +@@ -188,10 +198,6 @@ depcomp = am__depfiles_maybe = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) @@ -455,15 +353,11 @@ index 1bdf0daa8..271e7c089 100644 AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) am__v_CXX_0 = @echo " CXX " $@; --am__v_CXX_1 = -+am__v_CXX_1 = - CXXLD = $(CXX) - AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +@@ -201,7 +207,26 @@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; --am__v_CXXLD_1 = + am__v_CXXLD_1 = -SOURCES = $(libstdc___la_SOURCES) $(libvtv_la_SOURCES) -+am__v_CXXLD_1 = +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ @@ -473,7 +367,7 @@ index 1bdf0daa8..271e7c089 100644 +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; -+am__v_CC_1 = ++am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ @@ -481,118 +375,54 @@ index 1bdf0daa8..271e7c089 100644 +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; -+am__v_CCLD_1 = ++am__v_CCLD_1 = +SOURCES = $(libstdc___la_SOURCES) $(libstdc___nonshared110_la_SOURCES) \ -+ $(libstdc___nonshared48_la_SOURCES) \ + $(libstdc___nonshared80_la_SOURCES) $(libvtv_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ -@@ -242,7 +271,7 @@ am__define_uniq_tagged_files = \ +@@ -242,7 +267,8 @@ am__define_uniq_tagged_files = \ ETAGS = etags CTAGS = ctags DIST_SUBDIRS = c++98 c++11 c++17 c++20 c++23 c++26 filesystem \ - libbacktrace experimental -+ libbacktrace experimental nonshared98 nonshared11 nonshared17 nonshared20 nonshared23 nonshared26 ++ libbacktrace experimental nonshared98 nonshared11 nonshared17 \ ++ nonshared20 nonshared23 nonshared26 ABI_TWEAKS_SRCDIR = @ABI_TWEAKS_SRCDIR@ ACLOCAL = @ACLOCAL@ ALLOCATOR_H = @ALLOCATOR_H@ -@@ -465,11 +494,11 @@ PWD_COMMAND = $${PWDCMD-pwd} - STAMP = echo timestamp > - toolexecdir = $(glibcxx_toolexecdir) - toolexeclibdir = $(glibcxx_toolexeclibdir) --@ENABLE_WERROR_FALSE@WERROR_FLAG = -+@ENABLE_WERROR_FALSE@WERROR_FLAG = - @ENABLE_WERROR_TRUE@WERROR_FLAG = -Werror --@ENABLE_EXTERN_TEMPLATE_FALSE@XTEMPLATE_FLAGS = -+@ENABLE_EXTERN_TEMPLATE_FALSE@XTEMPLATE_FLAGS = - @ENABLE_EXTERN_TEMPLATE_TRUE@XTEMPLATE_FLAGS = -fno-implicit-templates --@GLIBCXX_LDBL_ALT128_COMPAT_FALSE@LDBL_128_FLAGS = -+@GLIBCXX_LDBL_ALT128_COMPAT_FALSE@LDBL_128_FLAGS = - @GLIBCXX_LDBL_ALT128_COMPAT_TRUE@LDBL_128_FLAGS = $(LONG_DOUBLE_128_FLAGS) - - # These bits are all figured out from configure. Look in acinclude.m4 -@@ -478,23 +507,27 @@ CONFIG_CXXFLAGS = \ - $(SECTION_FLAGS) $(HWCAP_CFLAGS) -frandom-seed=$@ $(LDBL_128_FLAGS) - - WARN_CXXFLAGS = \ -- $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once -+ $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once - - - # -I/-D flags to pass when compiling. - AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS) --@ENABLE_FILESYSTEM_TS_FALSE@@GLIBCXX_HOSTED_TRUE@filesystem_dir = -+@ENABLE_FILESYSTEM_TS_FALSE@@GLIBCXX_HOSTED_TRUE@filesystem_dir = - @ENABLE_FILESYSTEM_TS_TRUE@@GLIBCXX_HOSTED_TRUE@filesystem_dir = filesystem --@GLIBCXX_HOSTED_FALSE@filesystem_dir = --@ENABLE_BACKTRACE_FALSE@@GLIBCXX_HOSTED_TRUE@backtrace_dir = -+@GLIBCXX_HOSTED_FALSE@filesystem_dir = -+@ENABLE_BACKTRACE_FALSE@@GLIBCXX_HOSTED_TRUE@backtrace_dir = - @ENABLE_BACKTRACE_TRUE@@GLIBCXX_HOSTED_TRUE@backtrace_dir = libbacktrace --@GLIBCXX_HOSTED_FALSE@backtrace_dir = --@GLIBCXX_HOSTED_FALSE@experimental_dir = -+@GLIBCXX_HOSTED_FALSE@backtrace_dir = -+@GLIBCXX_HOSTED_FALSE@experimental_dir = +@@ -266,6 +292,8 @@ BACKTRACE_USES_MALLOC = @BACKTRACE_USES_MALLOC@ + BASIC_FILE_CC = @BASIC_FILE_CC@ + BASIC_FILE_H = @BASIC_FILE_H@ + CC = @CC@ ++CCAS = @CCAS@ ++CCASFLAGS = @CCASFLAGS@ + CCODECVT_CC = @CCODECVT_CC@ + CCOLLATE_CC = @CCOLLATE_CC@ + CCTYPE_CC = @CCTYPE_CC@ +@@ -492,12 +520,16 @@ AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS) + @GLIBCXX_HOSTED_FALSE@experimental_dir = @GLIBCXX_HOSTED_TRUE@experimental_dir = experimental SUBDIRS = c++98 c++11 c++17 c++20 c++23 c++26 \ -+ nonshared98 nonshared11 nonshared17 nonshared20 nonshared23 nonshared26 \ - $(filesystem_dir) $(backtrace_dir) $(experimental_dir) +- $(filesystem_dir) $(backtrace_dir) $(experimental_dir) ++ $(filesystem_dir) $(backtrace_dir) $(experimental_dir) \ ++ nonshared98 nonshared11 nonshared17 nonshared20 nonshared23 nonshared26 @VTV_CYGMIN_FALSE@toolexeclib_LTLIBRARIES = libstdc++.la -+noinst_LTLIBRARIES = libstdc++_nonshared48.la \ -+ libstdc++_nonshared80.la \ -+ libstdc++_nonshared110.la # Cross compiler support. @VTV_CYGMIN_TRUE@toolexeclib_LTLIBRARIES = libvtv.la libstdc++.la -@@ -510,13 +543,13 @@ SUBDIRS = c++98 c++11 c++17 c++20 c++23 c++26 \ - @VTV_CYGMIN_TRUE@ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(libvtv_la_AM_CXXFLAGS) \ - @VTV_CYGMIN_TRUE@ $(CXXFLAGS) $(libvtv_la_LDFLAGS) $(LDFLAGS) -o $@ - --@GLIBCXX_LDBL_COMPAT_FALSE@ldbl_compat_sources = -+@GLIBCXX_LDBL_COMPAT_FALSE@ldbl_compat_sources = - @GLIBCXX_LDBL_COMPAT_TRUE@ldbl_compat_sources = compatibility-ldbl.cc --@ENABLE_DUAL_ABI_FALSE@@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@ldbl_alt128_compat_cxx11_sources = -+@ENABLE_DUAL_ABI_FALSE@@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@ldbl_alt128_compat_cxx11_sources = - @ENABLE_DUAL_ABI_TRUE@@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@ldbl_alt128_compat_cxx11_sources = \ - @ENABLE_DUAL_ABI_TRUE@@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@ compatibility-ldbl-alt128-cxx11.cc - --@GLIBCXX_LDBL_ALT128_COMPAT_FALSE@ldbl_alt128_compat_sources = -+@GLIBCXX_LDBL_ALT128_COMPAT_FALSE@ldbl_alt128_compat_sources = - @GLIBCXX_LDBL_ALT128_COMPAT_TRUE@ldbl_alt128_compat_sources = \ - @GLIBCXX_LDBL_ALT128_COMPAT_TRUE@ compatibility-ldbl-alt128.cc \ - @GLIBCXX_LDBL_ALT128_COMPAT_TRUE@ ${ldbl_alt128_compat_cxx11_sources} -@@ -528,10 +561,56 @@ SUBDIRS = c++98 c++11 c++17 c++20 c++23 c++26 \ - @ENABLE_SYMVERS_GNU_NAMESPACE_FALSE@ compatibility-condvar.cc \ - @ENABLE_SYMVERS_GNU_NAMESPACE_FALSE@ compatibility-thread-c++0x.cc - --@ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@cxx0x_compat_sources = -+@ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@cxx0x_compat_sources = ++noinst_LTLIBRARIES = libstdc++_nonshared80.la \ ++ libstdc++_nonshared110.la ++ + @VTV_CYGMIN_TRUE@libvtv_la_SOURCES = vtv_stubs.cc + @VTV_CYGMIN_TRUE@libvtv_la_LDFLAGS = $(lt_host_flags) + @VTV_CYGMIN_TRUE@libvtv_la_AM_CXXFLAGS = \ +@@ -532,6 +564,32 @@ SUBDIRS = c++98 c++11 c++17 c++20 c++23 c++26 \ parallel_compat_sources = \ compatibility-parallel_list.cc compatibility-parallel_list-2.cc -+ -+libstdc___nonshared48_la_SOURCES = -+ -+libstdc___nonshared48_la_LIBADD = \ -+ $(top_builddir)/src/nonshared98/libnonshared98convenience48.la \ -+ $(top_builddir)/src/nonshared11/libnonshared11convenience48.la \ -+ $(top_builddir)/src/nonshared17/libnonshared17convenience48.la \ -+ $(top_builddir)/src/nonshared20/libnonshared20convenience48.la \ -+ $(top_builddir)/src/nonshared23/libnonshared23convenience48.la \ -+ $(top_builddir)/src/nonshared26/libnonshared26convenience48.la -+ -+libstdc___nonshared48_la_DEPENDENCIES = \ -+ $(top_builddir)/src/nonshared98/libnonshared98convenience48.la \ -+ $(top_builddir)/src/nonshared11/libnonshared11convenience48.la \ -+ $(top_builddir)/src/nonshared17/libnonshared17convenience48.la \ -+ $(top_builddir)/src/nonshared20/libnonshared20convenience48.la \ -+ $(top_builddir)/src/nonshared23/libnonshared23convenience48.la \ -+ $(top_builddir)/src/nonshared26/libnonshared26convenience48.la -+ -+libstdc___nonshared80_la_SOURCES = -+ ++libstdc___nonshared80_la_SOURCES = +libstdc___nonshared80_la_LIBADD = \ + $(top_builddir)/src/nonshared98/libnonshared98convenience80.la \ + $(top_builddir)/src/nonshared11/libnonshared11convenience80.la \ @@ -605,8 +435,7 @@ index 1bdf0daa8..271e7c089 100644 + $(top_builddir)/src/nonshared17/libnonshared17convenience80.la \ + $(top_builddir)/src/nonshared20/libnonshared20convenience80.la + -+libstdc___nonshared110_la_SOURCES = -+ ++libstdc___nonshared110_la_SOURCES = +libstdc___nonshared110_la_LIBADD = \ + $(top_builddir)/src/nonshared98/libnonshared98convenience110.la \ + $(top_builddir)/src/nonshared11/libnonshared11convenience110.la \ @@ -618,53 +447,11 @@ index 1bdf0daa8..271e7c089 100644 + $(top_builddir)/src/nonshared11/libnonshared11convenience110.la \ + $(top_builddir)/src/nonshared17/libnonshared17convenience110.la \ + $(top_builddir)/src/nonshared20/libnonshared20convenience110.la ++ cxx98_sources = \ compatibility.cc \ compatibility-debug_list.cc \ -@@ -544,7 +623,7 @@ cxx11_sources = \ - - # When freestanding, there's currently no compatibility to preserve. Should - # that change, any compatibility sources can be added here. --@GLIBCXX_HOSTED_FALSE@libstdc___la_SOURCES = -+@GLIBCXX_HOSTED_FALSE@libstdc___la_SOURCES = - @GLIBCXX_HOSTED_TRUE@libstdc___la_SOURCES = $(cxx98_sources) $(cxx11_sources) - libstdc___la_LIBADD = \ - $(GLIBCXX_LIBS) \ -@@ -668,27 +747,27 @@ CXXLINK = \ - - @ENABLE_SYMVERS_TRUE@CLEANFILES = libstdc++-symbols.ver $(version_dep) - @ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@version_arg = -Wl,-exported_symbols_list,libstdc++-symbols.explist --@ENABLE_SYMVERS_FALSE@version_arg = -+@ENABLE_SYMVERS_FALSE@version_arg = - @ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@@ENABLE_SYMVERS_TRUE@version_arg = -Wl,--version-script=libstdc++-symbols.ver - @ENABLE_SYMVERS_GNU_TRUE@@ENABLE_SYMVERS_TRUE@version_arg = -Wl,--version-script=libstdc++-symbols.ver - @ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@version_arg = -Wl,-M,libstdc++-symbols.ver-sun - @ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@version_dep = libstdc++-symbols.explist --@ENABLE_SYMVERS_FALSE@version_dep = -+@ENABLE_SYMVERS_FALSE@version_dep = - @ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@@ENABLE_SYMVERS_TRUE@version_dep = libstdc++-symbols.ver - @ENABLE_SYMVERS_GNU_TRUE@@ENABLE_SYMVERS_TRUE@version_dep = libstdc++-symbols.ver - @ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@version_dep = libstdc++-symbols.ver-sun --@GLIBCXX_BUILD_DEBUG_FALSE@STAMP_DEBUG = -+@GLIBCXX_BUILD_DEBUG_FALSE@STAMP_DEBUG = - - # Added rules. - # 1 debug library - # 2 supra-convenience library - @GLIBCXX_BUILD_DEBUG_TRUE@STAMP_DEBUG = build-debug --@GLIBCXX_BUILD_DEBUG_FALSE@STAMP_INSTALL_DEBUG = -+@GLIBCXX_BUILD_DEBUG_FALSE@STAMP_INSTALL_DEBUG = - @GLIBCXX_BUILD_DEBUG_TRUE@STAMP_INSTALL_DEBUG = install-debug --@GLIBCXX_BUILD_DEBUG_FALSE@CLEAN_DEBUG = -+@GLIBCXX_BUILD_DEBUG_FALSE@CLEAN_DEBUG = - @GLIBCXX_BUILD_DEBUG_TRUE@CLEAN_DEBUG = debug - @ENABLE_BACKTRACE_TRUE@backtrace_supported_h = $(backtrace_dir)/backtrace-supported.h --@ENABLE_BACKTRACE_FALSE@debug_backtrace_supported_h = -+@ENABLE_BACKTRACE_FALSE@debug_backtrace_supported_h = - @ENABLE_BACKTRACE_TRUE@debug_backtrace_supported_h = debug/$(backtrace_supported_h) - all: all-recursive - -@@ -725,6 +804,17 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) +@@ -725,6 +783,17 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): @@ -682,30 +469,20 @@ index 1bdf0daa8..271e7c089 100644 install-toolexeclibLTLIBRARIES: $(toolexeclib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(toolexeclib_LTLIBRARIES)'; test -n "$(toolexeclibdir)" || list=; \ -@@ -760,10 +850,20 @@ clean-toolexeclibLTLIBRARIES: - rm -f $${locs}; \ - } - --libstdc++.la: $(libstdc___la_OBJECTS) $(libstdc___la_DEPENDENCIES) $(EXTRA_libstdc___la_DEPENDENCIES) -+libstdc++.la: $(libstdc___la_OBJECTS) $(libstdc___la_DEPENDENCIES) $(EXTRA_libstdc___la_DEPENDENCIES) +@@ -763,6 +832,12 @@ clean-toolexeclibLTLIBRARIES: + libstdc++.la: $(libstdc___la_OBJECTS) $(libstdc___la_DEPENDENCIES) $(EXTRA_libstdc___la_DEPENDENCIES) $(AM_V_GEN)$(libstdc___la_LINK) $(am_libstdc___la_rpath) $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) $(LIBS) --libvtv.la: $(libvtv_la_OBJECTS) $(libvtv_la_DEPENDENCIES) $(EXTRA_libvtv_la_DEPENDENCIES) -+libstdc++_nonshared110.la: $(libstdc___nonshared110_la_OBJECTS) $(libstdc___nonshared110_la_DEPENDENCIES) $(EXTRA_libstdc___nonshared110_la_DEPENDENCIES) ++libstdc++_nonshared110.la: $(libstdc___nonshared110_la_OBJECTS) $(libstdc___nonshared110_la_DEPENDENCIES) $(EXTRA_libstdc___nonshared110_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libstdc___nonshared110_la_OBJECTS) $(libstdc___nonshared110_la_LIBADD) $(LIBS) + -+libstdc++_nonshared48.la: $(libstdc___nonshared48_la_OBJECTS) $(libstdc___nonshared48_la_DEPENDENCIES) $(EXTRA_libstdc___nonshared48_la_DEPENDENCIES) -+ $(AM_V_CCLD)$(LINK) $(libstdc___nonshared48_la_OBJECTS) $(libstdc___nonshared48_la_LIBADD) $(LIBS) -+ -+libstdc++_nonshared80.la: $(libstdc___nonshared80_la_OBJECTS) $(libstdc___nonshared80_la_DEPENDENCIES) $(EXTRA_libstdc___nonshared80_la_DEPENDENCIES) ++libstdc++_nonshared80.la: $(libstdc___nonshared80_la_OBJECTS) $(libstdc___nonshared80_la_DEPENDENCIES) $(EXTRA_libstdc___nonshared80_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libstdc___nonshared80_la_OBJECTS) $(libstdc___nonshared80_la_LIBADD) $(LIBS) + -+ -+libvtv.la: $(libvtv_la_OBJECTS) $(libvtv_la_DEPENDENCIES) $(EXTRA_libvtv_la_DEPENDENCIES) + libvtv.la: $(libvtv_la_OBJECTS) $(libvtv_la_DEPENDENCIES) $(EXTRA_libvtv_la_DEPENDENCIES) $(AM_V_GEN)$(libvtv_la_LINK) $(am_libvtv_la_rpath) $(libvtv_la_OBJECTS) $(libvtv_la_LIBADD) $(LIBS) - mostlyclean-compile: -@@ -927,7 +1027,8 @@ maintainer-clean-generic: +@@ -927,7 +1002,8 @@ maintainer-clean-generic: clean: clean-recursive clean-am: clean-generic clean-libtool clean-local \ @@ -715,7 +492,7 @@ index 1bdf0daa8..271e7c089 100644 distclean: distclean-recursive -rm -f Makefile -@@ -997,14 +1098,14 @@ uninstall-am: uninstall-toolexeclibLTLIBRARIES +@@ -997,14 +1073,14 @@ uninstall-am: uninstall-toolexeclibLTLIBRARIES .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \ check check-am clean clean-generic clean-libtool clean-local \ @@ -830,10 +607,20 @@ index bd3fd556b..a409fd116 100644 void __throw_ios_failure(const char* str __attribute__((unused)), diff --git a/libstdc++-v3/src/c++11/futex.cc b/libstdc++-v3/src/c++11/futex.cc -index ada2fdf3c..b4bfbefed 100644 +index ada2fdf3c..d70625254 100644 --- a/libstdc++-v3/src/c++11/futex.cc +++ b/libstdc++-v3/src/c++11/futex.cc -@@ -108,6 +108,7 @@ namespace +@@ -55,7 +55,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + + namespace + { ++#ifndef _GLIBCXX_NONSHARED_CXX11_80 + std::atomic futex_clock_realtime_unavailable; ++#endif + std::atomic futex_clock_monotonic_unavailable; + + #if defined(SYS_futex_time64) && SYS_futex_time64 != SYS_futex +@@ -108,6 +110,7 @@ namespace } } // namespace @@ -841,7 +628,7 @@ index ada2fdf3c..b4bfbefed 100644 bool __atomic_futex_unsigned_base:: _M_futex_wait_until(unsigned *__addr, unsigned __val, bool __has_timeout, -@@ -182,6 +183,7 @@ namespace +@@ -182,6 +185,7 @@ namespace return true; } } @@ -849,7 +636,7 @@ index ada2fdf3c..b4bfbefed 100644 bool __atomic_futex_unsigned_base:: -@@ -261,6 +263,7 @@ namespace +@@ -261,6 +265,7 @@ namespace } } @@ -857,7 +644,7 @@ index ada2fdf3c..b4bfbefed 100644 void __atomic_futex_unsigned_base::_M_futex_notify_all(unsigned* __addr) { -@@ -269,6 +272,7 @@ namespace +@@ -269,6 +274,7 @@ namespace // the error codes. See the futex documentation and glibc for background. syscall (SYS_futex, __addr, futex_wake_op, INT_MAX); } @@ -865,49 +652,6 @@ index ada2fdf3c..b4bfbefed 100644 _GLIBCXX_END_NAMESPACE_VERSION } -diff --git a/libstdc++-v3/src/c++11/future.cc b/libstdc++-v3/src/c++11/future.cc -index d3f3d2011..83c7a2595 100644 ---- a/libstdc++-v3/src/c++11/future.cc -+++ b/libstdc++-v3/src/c++11/future.cc -@@ -29,6 +29,7 @@ - # define __constinit [[clang::require_constant_initialization]] - #endif - -+#ifndef _GLIBCXX_NONSHARED_CXX11_48 - namespace - { - struct future_error_category final : public std::error_category -@@ -76,6 +77,7 @@ namespace - - __constinit constant_init future_category_instance{}; - } -+#endif - - namespace std _GLIBCXX_VISIBILITY(default) - { -@@ -85,6 +87,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION - __throw_future_error(int __i __attribute__((unused))) - { _GLIBCXX_THROW_OR_ABORT(future_error(make_error_code(future_errc(__i)))); } - -+#ifndef _GLIBCXX_NONSHARED_CXX11_48 - const error_category& future_category() noexcept - { return future_category_instance.cat; } - -@@ -92,11 +95,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION - - const char* - future_error::what() const noexcept { return logic_error::what(); } -+#endif - - #ifdef _GLIBCXX_HAS_GTHREADS -+#ifndef _GLIBCXX_NONSHARED_CXX11_48 - __future_base::_Result_base::_Result_base() = default; - - __future_base::_Result_base::~_Result_base() = default; -+#endif - - void - __future_base::_State_baseV2::_Make_ready::_S_run(void* p) diff --git a/libstdc++-v3/src/c++11/ios.cc b/libstdc++-v3/src/c++11/ios.cc index 9c2452a54..eb10093e2 100644 --- a/libstdc++-v3/src/c++11/ios.cc @@ -928,46 +672,19 @@ index 9c2452a54..eb10093e2 100644 void ios_base::_M_move(ios_base& __rhs) noexcept -diff --git a/libstdc++-v3/src/c++11/random.cc b/libstdc++-v3/src/c++11/random.cc -index b4bf0a785..c66c2ed21 100644 ---- a/libstdc++-v3/src/c++11/random.cc -+++ b/libstdc++-v3/src/c++11/random.cc -@@ -543,6 +543,7 @@ namespace std _GLIBCXX_VISIBILITY(default) - } - - // Called by old ABI version of random_device::_M_init(const std::string&). -+#ifndef _GLIBCXX_NONSHARED_CXX11_48 - void - random_device::_M_init(const char* s, size_t len) - { -@@ -621,6 +622,7 @@ namespace std _GLIBCXX_VISIBILITY(default) - random_device::result_type - random_device::_M_getval_pretr1() - { return _M_getval(); } -+#endif - - double - random_device::_M_getentropy() const noexcept diff --git a/libstdc++-v3/src/c++11/shared_ptr.cc b/libstdc++-v3/src/c++11/shared_ptr.cc -index 4b02cb25c..06235b281 100644 +index 4b02cb25c..1ec57ec71 100644 --- a/libstdc++-v3/src/c++11/shared_ptr.cc +++ b/libstdc++-v3/src/c++11/shared_ptr.cc -@@ -53,11 +53,14 @@ namespace std _GLIBCXX_VISIBILITY(default) +@@ -53,6 +53,7 @@ namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION +#ifndef _GLIBCXX_NONSHARED_CXX11_80 -+#ifndef _GLIBCXX_NONSHARED_CXX11_48 bad_weak_ptr::~bad_weak_ptr() noexcept = default; char const* - bad_weak_ptr::what() const noexcept - { return "bad_weak_ptr"; } -+#endif - - #ifdef __GTHREADS - namespace -@@ -102,6 +105,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION +@@ -102,6 +103,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __gnu_internal::get_mutex(_M_key2).unlock(); } } @@ -1001,42 +718,6 @@ index d01451ba1..04fd6cdf1 100644 #if _GLIBCXX_USE_CXX11_ABI // Return error_category::message() as a COW string -diff --git a/libstdc++-v3/src/c++11/thread.cc b/libstdc++-v3/src/c++11/thread.cc -index e516e6f97..0d68bc64c 100644 ---- a/libstdc++-v3/src/c++11/thread.cc -+++ b/libstdc++-v3/src/c++11/thread.cc -@@ -211,6 +211,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION - } - #endif - -+#ifndef _GLIBCXX_NONSHARED_CXX11_48 - unsigned int - thread::hardware_concurrency() noexcept - { -@@ -219,6 +220,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION - __n = 0; - return __n; - } -+#endif - - _GLIBCXX_END_NAMESPACE_VERSION - } // namespace std -@@ -231,6 +233,7 @@ namespace std _GLIBCXX_VISIBILITY(default) - _GLIBCXX_BEGIN_NAMESPACE_VERSION - namespace this_thread - { -+#ifndef _GLIBCXX_NONSHARED_CXX11_48 - void - __sleep_for(chrono::seconds __s, chrono::nanoseconds __ns) - { -@@ -279,6 +282,7 @@ namespace this_thread - ::Sleep(chrono::milliseconds(__s).count() + ms); - #endif - } -+#endif - } - _GLIBCXX_END_NAMESPACE_VERSION - } // namespace std diff --git a/libstdc++-v3/src/c++17/floating_from_chars.cc b/libstdc++-v3/src/c++17/floating_from_chars.cc index e0870dca7..91a386176 100644 --- a/libstdc++-v3/src/c++17/floating_from_chars.cc @@ -1169,13 +850,13 @@ index fa469b1b8..2e2d4e353 100644 { diff --git a/libstdc++-v3/src/nonshared11/Makefile.am b/libstdc++-v3/src/nonshared11/Makefile.am new file mode 100644 -index 000000000..4fd0b109b +index 000000000..f10095a62 --- /dev/null +++ b/libstdc++-v3/src/nonshared11/Makefile.am -@@ -0,0 +1,236 @@ +@@ -0,0 +1,139 @@ +## Makefile for the C++03 sources of the GNU C++ Standard library. +## -+## Copyright (C) 1997-2023 Free Software Foundation, Inc. ++## Copyright (C) 1997-2024 Free Software Foundation, Inc. +## +## This file is part of the libstdc++ version 3 distribution. +## Process this file with automake to produce Makefile.in. @@ -1198,56 +879,11 @@ index 000000000..4fd0b109b +include $(top_srcdir)/fragment.am + +# Convenience library for C++11 runtime. -+noinst_LTLIBRARIES = libnonshared11convenience48.la \ -+ libnonshared11convenience80.la \ ++noinst_LTLIBRARIES = libnonshared11convenience80.la \ + libnonshared11convenience110.la + +headers = + -+sources48 = \ -+ bad_array_length.cc \ -+ bad_array_new.cc \ -+ codecvt.cc \ -+ condition_variable.cc \ -+ cow-shim_facets.cc \ -+ cow-stdexcept.cc \ -+ ctype.cc \ -+ cxx11-hash_tr1.cc \ -+ cxx11-ios_failure.cc \ -+ cxx11-shim_facets.cc \ -+ cxx11-stdexcept.cc \ -+ del_ops.cc \ -+ del_opvs.cc \ -+ new_opa.cc \ -+ new_opant.cc \ -+ new_opva.cc \ -+ new_opvant.cc \ -+ del_opa.cc \ -+ del_opant.cc \ -+ del_opsa.cc \ -+ del_opva.cc \ -+ del_opvant.cc \ -+ del_opvsa.cc \ -+ eh_aux_runtime.cc \ -+ eh_terminate.cc \ -+ eh_ptr.cc \ -+ eh_throw.cc \ -+ futex.cc \ -+ ios.cc \ -+ ios_errcat.cc \ -+ new_handler.cc \ -+ snprintf_lite.cc \ -+ limits.cc \ -+ functexcept48.cc \ -+ future48.cc \ -+ random.cc \ -+ regex48.cc \ -+ debug.cc \ -+ shared_ptr48.cc \ -+ system_error48.cc \ -+ thread48.cc \ -+ $(inst_sources48) -+ +sources80 = \ + limits.cc \ + functexcept80.cc \ @@ -1259,37 +895,17 @@ index 000000000..4fd0b109b + shared_ptr80.cc \ + cxx11-ios_failure80.cc \ + condition_variable80.cc \ ++ basic_file.cc \ + $(inst_sources80) + +sources110 = \ + debug110.cc \ + condition_variable80.cc \ ++ basic_file.cc \ + $(inst_sources110) + +if ENABLE_EXTERN_TEMPLATE +# XTEMPLATE_FLAGS = -fno-implicit-templates -+inst_sources48 = \ -+ cxx11-locale-inst.cc \ -+ cxx11-wlocale-inst.cc \ -+ ext11-inst.cc \ -+ fstream-inst.cc \ -+ ios-inst.cc \ -+ iostream-inst.cc \ -+ istream-inst.cc \ -+ locale-inst-asm.S \ -+ ostream-inst.cc \ -+ sstream-inst.cc \ -+ streambuf-inst.cc \ -+ string-inst.cc \ -+ wstring-inst.cc \ -+ string-io-inst.cc \ -+ wstring-io-inst.cc \ -+ sso_string.cc \ -+ cow-sstream-inst.cc \ -+ cow-string-inst48.cc \ -+ cow-wstring-inst48.cc \ -+ locale-inst.cc \ -+ wlocale-inst.cc +inst_sources80 = \ + cow-sstream-inst80.cc \ + istream-inst80.cc \ @@ -1308,10 +924,9 @@ index 000000000..4fd0b109b + string-inst110.cc \ + wstring-inst110.cc \ + cxx11-locale-inst110.cc \ -+ cxx11-wlocale-inst80.cc ++ cxx11-wlocale-inst110.cc +else +# XTEMPLATE_FLAGS = -+inst_sources48 = +inst_sources80 = +inst_sources110 = +endif @@ -1319,7 +934,6 @@ index 000000000..4fd0b109b +vpath % $(top_srcdir)/src/nonshared11 +vpath % $(top_srcdir) + -+libnonshared11convenience48_la_SOURCES = $(sources48) +libnonshared11convenience80_la_SOURCES = $(sources80) +libnonshared11convenience110_la_SOURCES = $(sources110) + @@ -1374,47 +988,17 @@ index 000000000..4fd0b109b + $(VTV_CXXLINKFLAGS) \ + $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ + -+# Use special rules for the C++14 sources so that the proper flags are passed. -+del_ops.lo: del_ops.cc -+ $(LTCXXCOMPILE) -std=gnu++14 -Wno-sized-deallocation -c $< -+del_opvs.lo: del_opvs.cc -+ $(LTCXXCOMPILE) -std=gnu++14 -Wno-sized-deallocation -c $< -+ -+# Use special rules for the C++17 sources so that the proper flags are passed. -+new_opa.lo: new_opa.cc -+ $(LTCXXCOMPILE) -std=gnu++1z -c $< -+new_opant.lo: new_opant.cc -+ $(LTCXXCOMPILE) -std=gnu++1z -c $< -+new_opva.lo: new_opva.cc -+ $(LTCXXCOMPILE) -std=gnu++1z -c $< -+new_opvant.lo: new_opvant.cc -+ $(LTCXXCOMPILE) -std=gnu++1z -c $< -+del_opa.lo: del_opa.cc -+ $(LTCXXCOMPILE) -std=gnu++1z -c $< -+del_opant.lo: del_opant.cc -+ $(LTCXXCOMPILE) -std=gnu++1z -c $< -+del_opsa.lo: del_opsa.cc -+ $(LTCXXCOMPILE) -std=gnu++1z -c $< -+del_opva.lo: del_opva.cc -+ $(LTCXXCOMPILE) -std=gnu++1z -c $< -+del_opvant.lo: del_opvant.cc -+ $(LTCXXCOMPILE) -std=gnu++1z -c $< -+del_opvsa.lo: del_opvsa.cc -+ $(LTCXXCOMPILE) -std=gnu++1z -c $< -+ +# Use special rules for source files that require -fchar8_t. -+codecvt.lo: codecvt.cc -+ $(LTCXXCOMPILE) -fchar8_t -c $< +codecvt80.lo: codecvt80.cc + $(LTCXXCOMPILE) -fchar8_t -c $< +limits.lo: limits.cc + $(LTCXXCOMPILE) -fchar8_t -c $< diff --git a/libstdc++-v3/src/nonshared11/Makefile.in b/libstdc++-v3/src/nonshared11/Makefile.in new file mode 100644 -index 000000000..966804dfa +index 000000000..befe37580 --- /dev/null +++ b/libstdc++-v3/src/nonshared11/Makefile.in -@@ -0,0 +1,983 @@ +@@ -0,0 +1,816 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + @@ -1543,46 +1127,18 @@ index 000000000..966804dfa +@ENABLE_EXTERN_TEMPLATE_TRUE@ string-inst110.lo \ +@ENABLE_EXTERN_TEMPLATE_TRUE@ wstring-inst110.lo \ +@ENABLE_EXTERN_TEMPLATE_TRUE@ cxx11-locale-inst110.lo \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ cxx11-wlocale-inst80.lo -+am__objects_2 = debug110.lo condition_variable80.lo $(am__objects_1) ++@ENABLE_EXTERN_TEMPLATE_TRUE@ cxx11-wlocale-inst110.lo ++am__objects_2 = debug110.lo condition_variable80.lo basic_file.lo \ ++ $(am__objects_1) +am_libnonshared11convenience110_la_OBJECTS = $(am__objects_2) +libnonshared11convenience110_la_OBJECTS = \ + $(am_libnonshared11convenience110_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent -+am__v_lt_1 = -+libnonshared11convenience48_la_LIBADD = -+@ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_3 = cxx11-locale-inst.lo \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ cxx11-wlocale-inst.lo \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ ext11-inst.lo fstream-inst.lo \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ ios-inst.lo iostream-inst.lo \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ istream-inst.lo \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ locale-inst-asm.lo \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ ostream-inst.lo sstream-inst.lo \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ streambuf-inst.lo string-inst.lo \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ wstring-inst.lo string-io-inst.lo \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ wstring-io-inst.lo sso_string.lo \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ cow-sstream-inst.lo \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ cow-string-inst48.lo \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ cow-wstring-inst48.lo \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ locale-inst.lo wlocale-inst.lo -+am__objects_4 = bad_array_length.lo bad_array_new.lo codecvt.lo \ -+ condition_variable.lo cow-shim_facets.lo cow-stdexcept.lo \ -+ ctype.lo cxx11-hash_tr1.lo cxx11-ios_failure.lo \ -+ cxx11-shim_facets.lo cxx11-stdexcept.lo del_ops.lo del_opvs.lo \ -+ new_opa.lo new_opant.lo new_opva.lo new_opvant.lo del_opa.lo \ -+ del_opant.lo del_opsa.lo del_opva.lo del_opvant.lo \ -+ del_opvsa.lo eh_aux_runtime.lo eh_terminate.lo eh_ptr.lo \ -+ eh_throw.lo futex.lo ios.lo ios_errcat.lo new_handler.lo \ -+ snprintf_lite.lo limits.lo functexcept48.lo future48.lo \ -+ random.lo regex48.lo debug.lo shared_ptr48.lo \ -+ system_error48.lo thread48.lo $(am__objects_3) -+am_libnonshared11convenience48_la_OBJECTS = $(am__objects_4) -+libnonshared11convenience48_la_OBJECTS = \ -+ $(am_libnonshared11convenience48_la_OBJECTS) ++am__v_lt_1 = +libnonshared11convenience80_la_LIBADD = -+@ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_5 = cow-sstream-inst80.lo \ ++@ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_3 = cow-sstream-inst80.lo \ +@ENABLE_EXTERN_TEMPLATE_TRUE@ istream-inst80.lo \ +@ENABLE_EXTERN_TEMPLATE_TRUE@ sstream-inst80.lo \ +@ENABLE_EXTERN_TEMPLATE_TRUE@ cow-string-inst80.lo \ @@ -1593,11 +1149,11 @@ index 000000000..966804dfa +@ENABLE_EXTERN_TEMPLATE_TRUE@ wstring-inst80.lo \ +@ENABLE_EXTERN_TEMPLATE_TRUE@ cxx11-locale-inst80.lo \ +@ENABLE_EXTERN_TEMPLATE_TRUE@ cxx11-wlocale-inst80.lo -+am__objects_6 = limits.lo functexcept80.lo debug.lo eh_ptr80.lo \ ++am__objects_4 = limits.lo functexcept80.lo debug.lo eh_ptr80.lo \ + futex80.lo codecvt80.lo cow-stdexcept80.lo shared_ptr80.lo \ -+ cxx11-ios_failure80.lo condition_variable80.lo \ -+ $(am__objects_5) -+am_libnonshared11convenience80_la_OBJECTS = $(am__objects_6) ++ cxx11-ios_failure80.lo condition_variable80.lo basic_file.lo \ ++ $(am__objects_3) ++am_libnonshared11convenience80_la_OBJECTS = $(am__objects_4) +libnonshared11convenience80_la_OBJECTS = \ + $(am_libnonshared11convenience80_la_OBJECTS) +AM_V_P = $(am__v_P_@AM_V@) @@ -1607,55 +1163,26 @@ index 000000000..966804dfa +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; -+am__v_GEN_1 = ++am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ -+am__v_at_1 = ++am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = +am__depfiles_maybe = -+CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ -+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -+LTCPPASCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ -+ $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) \ -+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ -+ $(AM_CCASFLAGS) $(CCASFLAGS) -+AM_V_CPPAS = $(am__v_CPPAS_@AM_V@) -+am__v_CPPAS_ = $(am__v_CPPAS_@AM_DEFAULT_V@) -+am__v_CPPAS_0 = @echo " CPPAS " $@; -+am__v_CPPAS_1 = +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; -+am__v_CXX_1 = ++am__v_CXX_1 = +CXXLD = $(CXX) +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; -+am__v_CXXLD_1 = -+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ -+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ -+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ -+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ -+ $(AM_CFLAGS) $(CFLAGS) -+AM_V_CC = $(am__v_CC_@AM_V@) -+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -+am__v_CC_0 = @echo " CC " $@; -+am__v_CC_1 = -+CCLD = $(CC) -+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ -+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ -+ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -+AM_V_CCLD = $(am__v_CCLD_@AM_V@) -+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -+am__v_CCLD_0 = @echo " CCLD " $@; -+am__v_CCLD_1 = ++am__v_CXXLD_1 = +SOURCES = $(libnonshared11convenience110_la_SOURCES) \ -+ $(libnonshared11convenience48_la_SOURCES) \ + $(libnonshared11convenience80_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ @@ -1905,11 +1432,11 @@ index 000000000..966804dfa +STAMP = echo timestamp > +toolexecdir = $(glibcxx_toolexecdir) +toolexeclibdir = $(glibcxx_toolexeclibdir) -+@ENABLE_WERROR_FALSE@WERROR_FLAG = ++@ENABLE_WERROR_FALSE@WERROR_FLAG = +@ENABLE_WERROR_TRUE@WERROR_FLAG = -Werror -+@ENABLE_EXTERN_TEMPLATE_FALSE@XTEMPLATE_FLAGS = ++@ENABLE_EXTERN_TEMPLATE_FALSE@XTEMPLATE_FLAGS = +@ENABLE_EXTERN_TEMPLATE_TRUE@XTEMPLATE_FLAGS = -fno-implicit-templates -+@GLIBCXX_LDBL_ALT128_COMPAT_FALSE@LDBL_128_FLAGS = ++@GLIBCXX_LDBL_ALT128_COMPAT_FALSE@LDBL_128_FLAGS = +@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@LDBL_128_FLAGS = $(LONG_DOUBLE_128_FLAGS) + +# These bits are all figured out from configure. Look in acinclude.m4 @@ -1918,62 +1445,17 @@ index 000000000..966804dfa + $(SECTION_FLAGS) $(HWCAP_CFLAGS) -frandom-seed=$@ $(LDBL_128_FLAGS) + +WARN_CXXFLAGS = \ -+ $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once ++ $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once + + +# -I/-D flags to pass when compiling. +AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS) + +# Convenience library for C++11 runtime. -+noinst_LTLIBRARIES = libnonshared11convenience48.la \ -+ libnonshared11convenience80.la \ ++noinst_LTLIBRARIES = libnonshared11convenience80.la \ + libnonshared11convenience110.la + -+headers = -+sources48 = \ -+ bad_array_length.cc \ -+ bad_array_new.cc \ -+ codecvt.cc \ -+ condition_variable.cc \ -+ cow-shim_facets.cc \ -+ cow-stdexcept.cc \ -+ ctype.cc \ -+ cxx11-hash_tr1.cc \ -+ cxx11-ios_failure.cc \ -+ cxx11-shim_facets.cc \ -+ cxx11-stdexcept.cc \ -+ del_ops.cc \ -+ del_opvs.cc \ -+ new_opa.cc \ -+ new_opant.cc \ -+ new_opva.cc \ -+ new_opvant.cc \ -+ del_opa.cc \ -+ del_opant.cc \ -+ del_opsa.cc \ -+ del_opva.cc \ -+ del_opvant.cc \ -+ del_opvsa.cc \ -+ eh_aux_runtime.cc \ -+ eh_terminate.cc \ -+ eh_ptr.cc \ -+ eh_throw.cc \ -+ futex.cc \ -+ ios.cc \ -+ ios_errcat.cc \ -+ new_handler.cc \ -+ snprintf_lite.cc \ -+ limits.cc \ -+ functexcept48.cc \ -+ future48.cc \ -+ random.cc \ -+ regex48.cc \ -+ debug.cc \ -+ shared_ptr48.cc \ -+ system_error48.cc \ -+ thread48.cc \ -+ $(inst_sources48) -+ ++headers = +sources80 = \ + limits.cc \ + functexcept80.cc \ @@ -1985,41 +1467,19 @@ index 000000000..966804dfa + shared_ptr80.cc \ + cxx11-ios_failure80.cc \ + condition_variable80.cc \ ++ basic_file.cc \ + $(inst_sources80) + +sources110 = \ + debug110.cc \ + condition_variable80.cc \ ++ basic_file.cc \ + $(inst_sources110) + +# XTEMPLATE_FLAGS = -+@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources48 = ++@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources80 = + +# XTEMPLATE_FLAGS = -fno-implicit-templates -+@ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources48 = \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ cxx11-locale-inst.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ cxx11-wlocale-inst.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ ext11-inst.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ fstream-inst.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ ios-inst.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ iostream-inst.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ istream-inst.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ locale-inst-asm.S \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ ostream-inst.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ sstream-inst.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ streambuf-inst.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ string-inst.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ wstring-inst.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ string-io-inst.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ wstring-io-inst.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ sso_string.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ cow-sstream-inst.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ cow-string-inst48.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ cow-wstring-inst48.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ locale-inst.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ wlocale-inst.cc -+ -+@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources80 = +@ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources80 = \ +@ENABLE_EXTERN_TEMPLATE_TRUE@ cow-sstream-inst80.cc \ +@ENABLE_EXTERN_TEMPLATE_TRUE@ istream-inst80.cc \ @@ -2033,16 +1493,15 @@ index 000000000..966804dfa +@ENABLE_EXTERN_TEMPLATE_TRUE@ cxx11-locale-inst80.cc \ +@ENABLE_EXTERN_TEMPLATE_TRUE@ cxx11-wlocale-inst80.cc + -+@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources110 = ++@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources110 = +@ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources110 = \ +@ENABLE_EXTERN_TEMPLATE_TRUE@ locale-inst110.cc \ +@ENABLE_EXTERN_TEMPLATE_TRUE@ wlocale-inst110.cc \ +@ENABLE_EXTERN_TEMPLATE_TRUE@ string-inst110.cc \ +@ENABLE_EXTERN_TEMPLATE_TRUE@ wstring-inst110.cc \ +@ENABLE_EXTERN_TEMPLATE_TRUE@ cxx11-locale-inst110.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ cxx11-wlocale-inst80.cc ++@ENABLE_EXTERN_TEMPLATE_TRUE@ cxx11-wlocale-inst110.cc + -+libnonshared11convenience48_la_SOURCES = $(sources48) +libnonshared11convenience80_la_SOURCES = $(sources80) +libnonshared11convenience110_la_SOURCES = $(sources110) + @@ -2101,7 +1560,7 @@ index 000000000..966804dfa +all: all-am + +.SUFFIXES: -+.SUFFIXES: .S .cc .lo .o .obj ++.SUFFIXES: .cc .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/fragment.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ @@ -2144,13 +1603,10 @@ index 000000000..966804dfa + rm -f $${locs}; \ + } + -+libnonshared11convenience110.la: $(libnonshared11convenience110_la_OBJECTS) $(libnonshared11convenience110_la_DEPENDENCIES) $(EXTRA_libnonshared11convenience110_la_DEPENDENCIES) ++libnonshared11convenience110.la: $(libnonshared11convenience110_la_OBJECTS) $(libnonshared11convenience110_la_DEPENDENCIES) $(EXTRA_libnonshared11convenience110_la_DEPENDENCIES) + $(AM_V_CXXLD)$(CXXLINK) $(libnonshared11convenience110_la_OBJECTS) $(libnonshared11convenience110_la_LIBADD) $(LIBS) + -+libnonshared11convenience48.la: $(libnonshared11convenience48_la_OBJECTS) $(libnonshared11convenience48_la_DEPENDENCIES) $(EXTRA_libnonshared11convenience48_la_DEPENDENCIES) -+ $(AM_V_CXXLD)$(CXXLINK) $(libnonshared11convenience48_la_OBJECTS) $(libnonshared11convenience48_la_LIBADD) $(LIBS) -+ -+libnonshared11convenience80.la: $(libnonshared11convenience80_la_OBJECTS) $(libnonshared11convenience80_la_DEPENDENCIES) $(EXTRA_libnonshared11convenience80_la_DEPENDENCIES) ++libnonshared11convenience80.la: $(libnonshared11convenience80_la_OBJECTS) $(libnonshared11convenience80_la_DEPENDENCIES) $(EXTRA_libnonshared11convenience80_la_DEPENDENCIES) + $(AM_V_CXXLD)$(CXXLINK) $(libnonshared11convenience80_la_OBJECTS) $(libnonshared11convenience80_la_LIBADD) $(LIBS) + +mostlyclean-compile: @@ -2159,15 +1615,6 @@ index 000000000..966804dfa +distclean-compile: + -rm -f *.tab.c + -+.S.o: -+ $(AM_V_CPPAS)$(CPPASCOMPILE) -c -o $@ $< -+ -+.S.obj: -+ $(AM_V_CPPAS)$(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` -+ -+.S.lo: -+ $(AM_V_CPPAS)$(LTCPPASCOMPILE) -c -o $@ $< -+ +.cc.o: + $(AM_V_CXX)$(CXXCOMPILE) -c -o $@ $< + @@ -2359,37 +1806,7 @@ index 000000000..966804dfa +vpath % $(top_srcdir)/src/nonshared11 +vpath % $(top_srcdir) + -+# Use special rules for the C++14 sources so that the proper flags are passed. -+del_ops.lo: del_ops.cc -+ $(LTCXXCOMPILE) -std=gnu++14 -Wno-sized-deallocation -c $< -+del_opvs.lo: del_opvs.cc -+ $(LTCXXCOMPILE) -std=gnu++14 -Wno-sized-deallocation -c $< -+ -+# Use special rules for the C++17 sources so that the proper flags are passed. -+new_opa.lo: new_opa.cc -+ $(LTCXXCOMPILE) -std=gnu++1z -c $< -+new_opant.lo: new_opant.cc -+ $(LTCXXCOMPILE) -std=gnu++1z -c $< -+new_opva.lo: new_opva.cc -+ $(LTCXXCOMPILE) -std=gnu++1z -c $< -+new_opvant.lo: new_opvant.cc -+ $(LTCXXCOMPILE) -std=gnu++1z -c $< -+del_opa.lo: del_opa.cc -+ $(LTCXXCOMPILE) -std=gnu++1z -c $< -+del_opant.lo: del_opant.cc -+ $(LTCXXCOMPILE) -std=gnu++1z -c $< -+del_opsa.lo: del_opsa.cc -+ $(LTCXXCOMPILE) -std=gnu++1z -c $< -+del_opva.lo: del_opva.cc -+ $(LTCXXCOMPILE) -std=gnu++1z -c $< -+del_opvant.lo: del_opvant.cc -+ $(LTCXXCOMPILE) -std=gnu++1z -c $< -+del_opvsa.lo: del_opvsa.cc -+ $(LTCXXCOMPILE) -std=gnu++1z -c $< -+ +# Use special rules for source files that require -fchar8_t. -+codecvt.lo: codecvt.cc -+ $(LTCXXCOMPILE) -fchar8_t -c $< +codecvt80.lo: codecvt80.cc + $(LTCXXCOMPILE) -fchar8_t -c $< +limits.lo: limits.cc @@ -2398,13 +1815,15 @@ index 000000000..966804dfa +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: -diff --git a/libstdc++-v3/src/nonshared11/bad_array_length.cc b/libstdc++-v3/src/nonshared11/bad_array_length.cc +diff --git a/libstdc++-v3/src/nonshared11/basic_file.cc b/libstdc++-v3/src/nonshared11/basic_file.cc new file mode 100644 -index 000000000..ec585eb0d +index 000000000..2962cee3e --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/bad_array_length.cc -@@ -0,0 +1,23 @@ -+// Copyright (C) 2014-2023 Free Software Foundation, Inc. ++++ b/libstdc++-v3/src/nonshared11/basic_file.cc +@@ -0,0 +1,82 @@ ++// Wrapper of C-language FILE struct -*- C++ -*- ++ ++// Copyright (C) 2000-2024 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 @@ -2426,43 +1845,71 @@ index 000000000..ec585eb0d +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+#include "../libsupc++/bad_array_length.cc" -diff --git a/libstdc++-v3/src/nonshared11/bad_array_new.cc b/libstdc++-v3/src/nonshared11/bad_array_new.cc -new file mode 100644 -index 000000000..5d988a9f6 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/bad_array_new.cc -@@ -0,0 +1,23 @@ -+// Copyright (C) 2014-2023 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. ++// ISO C++ 14882: 27.8 File-based streams ++// + -+// 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. ++#include ++#include ++#include ++#include + -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. ++#ifdef _GLIBCXX_HAVE_POLL ++#include ++#endif + -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . ++// Pick up ioctl on Solaris 2.8 ++#ifdef _GLIBCXX_HAVE_UNISTD_H ++#include ++#endif ++ ++// Pick up FIONREAD on Solaris 2 ++#ifdef _GLIBCXX_HAVE_SYS_IOCTL_H ++#define BSD_COMP ++#include ++#endif ++ ++// Pick up FIONREAD on Solaris 2.5. ++#ifdef _GLIBCXX_HAVE_SYS_FILIO_H ++#include ++#endif ++ ++#ifdef _GLIBCXX_HAVE_SYS_UIO_H ++#include ++#endif ++ ++#if _GLIBCXX_USE__GET_OSFHANDLE ++# include // For intptr_t ++# include // For _get_osfhandle ++#endif ++ ++namespace std _GLIBCXX_VISIBILITY(default) ++{ ++_GLIBCXX_BEGIN_NAMESPACE_VERSION ++ ++ __basic_file::native_handle_type ++ __basic_file::native_handle() const noexcept ++ { ++#ifdef _GLIBCXX_USE_STDIO_PURE ++ return _M_cfile; ++#elif _GLIBCXX_USE__GET_OSFHANDLE ++ const intptr_t handle = _M_cfile ? _get_osfhandle(fileno(_M_cfile)) : -1; ++ return reinterpret_cast(handle); ++#else ++ return fileno(_M_cfile); ++#endif ++ } ++ ++_GLIBCXX_END_NAMESPACE_VERSION ++} // namespace + -+#include "../libsupc++/bad_array_new.cc" -diff --git a/libstdc++-v3/src/nonshared11/codecvt.cc b/libstdc++-v3/src/nonshared11/codecvt.cc +diff --git a/libstdc++-v3/src/nonshared11/codecvt80.cc b/libstdc++-v3/src/nonshared11/codecvt80.cc new file mode 100644 -index 000000000..eff95887c +index 000000000..c903548a8 --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/codecvt.cc -@@ -0,0 +1,37 @@ -+// Copyright (C) 2012-2023 Free Software Foundation, Inc. ++++ b/libstdc++-v3/src/nonshared11/codecvt80.cc +@@ -0,0 +1,38 @@ ++// Copyright (C) 2012-2024 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 @@ -2484,6 +1931,7 @@ index 000000000..eff95887c +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + ++#define _GLIBCXX_NONSHARED_CXX11_80 +#include "../c++11/codecvt.cc" +asm (".hidden _ZTISt12codecvt_base"); +asm (".hidden _ZTSSt12codecvt_base"); @@ -2499,13 +1947,15 @@ index 000000000..eff95887c +asm (".hidden _ZTSSt23__codecvt_abstract_baseIDsDu11__mbstate_tE"); +asm (".hidden _ZTVSt23__codecvt_abstract_baseIDiDu11__mbstate_tE"); +asm (".hidden _ZTVSt23__codecvt_abstract_baseIDsDu11__mbstate_tE"); -diff --git a/libstdc++-v3/src/nonshared11/codecvt80.cc b/libstdc++-v3/src/nonshared11/codecvt80.cc +diff --git a/libstdc++-v3/src/nonshared11/condition_variable80.cc b/libstdc++-v3/src/nonshared11/condition_variable80.cc new file mode 100644 -index 000000000..5e41e4735 +index 000000000..10e51e42c --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/codecvt80.cc -@@ -0,0 +1,24 @@ -+// Copyright (C) 2012-2023 Free Software Foundation, Inc. ++++ b/libstdc++-v3/src/nonshared11/condition_variable80.cc +@@ -0,0 +1,44 @@ ++// condition_variable -*- C++ -*- ++ ++// Copyright (C) 2008-2023 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 @@ -2527,74 +1977,8 @@ index 000000000..5e41e4735 +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+#define _GLIBCXX_NONSHARED_CXX11_80 -+#include "codecvt.cc" -diff --git a/libstdc++-v3/src/nonshared11/condition_variable.cc b/libstdc++-v3/src/nonshared11/condition_variable.cc -new file mode 100644 -index 000000000..d4c5bbc92 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/condition_variable.cc -@@ -0,0 +1,28 @@ -+// condition_variable -*- C++ -*- -+ -+// Copyright (C) 2008-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_NONSHARED_CXX11 -+#include "../c++11/condition_variable.cc" -+asm (".hidden _ZNSt18condition_variable4waitERSt11unique_lockISt5mutexE"); -+asm (".hidden _ZSt16__at_thread_exitPSt20__at_thread_exit_elt"); -diff --git a/libstdc++-v3/src/nonshared11/condition_variable80.cc b/libstdc++-v3/src/nonshared11/condition_variable80.cc -new file mode 100644 -index 000000000..10e51e42c ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/condition_variable80.cc -@@ -0,0 +1,44 @@ -+// condition_variable -*- C++ -*- -+ -+// Copyright (C) 2008-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include -+#include ++#include ++#include + +#ifdef _GLIBCXX_HAS_GTHREADS + @@ -2613,262 +1997,13 @@ index 000000000..10e51e42c + +#endif // _GLIBCXX_HAS_GTHREADS +asm (".hidden _ZNSt18condition_variable4waitERSt11unique_lockISt5mutexE"); -diff --git a/libstdc++-v3/src/nonshared11/cow-fstream-inst.cc b/libstdc++-v3/src/nonshared11/cow-fstream-inst.cc -new file mode 100644 -index 000000000..78d45c796 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/cow-fstream-inst.cc -@@ -0,0 +1,48 @@ -+// Explicit instantiation file. -+ -+// Copyright (C) 1997-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+// -+// ISO C++ 14882: -+// -+ -+#define _GLIBCXX_USE_CXX11_ABI 0 -+#include -+ -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+ -+ typedef basic_filebuf FIC; -+ -+ template -+ int FIC::_M_get_ext_pos(__state_type &); -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ typedef basic_filebuf FIW; -+ -+ template -+ int FIW::_M_get_ext_pos(__state_type &); -+ -+#endif -+ -+} -diff --git a/libstdc++-v3/src/nonshared11/cow-shim_facets.cc b/libstdc++-v3/src/nonshared11/cow-shim_facets.cc -new file mode 100644 -index 000000000..48316c4da ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/cow-shim_facets.cc -@@ -0,0 +1,187 @@ -+// Copyright (C) 2012-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include "../c++11/cow-shim_facets.cc" -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_112collate_shimIcE10do_compareEPKcS4_S4_S4_"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_112collate_shimIcE12do_transformEPKcS4_"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_112collate_shimIwE10do_compareEPKwS4_S4_S4_"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_112collate_shimIwE12do_transformEPKwS4_"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113messages_shimIcE6do_getEiiiRKSs"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113messages_shimIcE7do_openERKSsRKSt6locale"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113messages_shimIcE8do_closeEi"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113messages_shimIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113messages_shimIwE7do_openERKSsRKSt6locale"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113messages_shimIwE8do_closeEi"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIcE11do_get_dateESt19istreambuf_iteratorIcSt11char_traitsIcEES6_RSt8ios_baseRSt12_Ios_IostateP2tm"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIcE11do_get_timeESt19istreambuf_iteratorIcSt11char_traitsIcEES6_RSt8ios_baseRSt12_Ios_IostateP2tm"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIcE11do_get_yearESt19istreambuf_iteratorIcSt11char_traitsIcEES6_RSt8ios_baseRSt12_Ios_IostateP2tm"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIcE13do_date_orderEv"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIcE14do_get_weekdayESt19istreambuf_iteratorIcSt11char_traitsIcEES6_RSt8ios_baseRSt12_Ios_IostateP2tm"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIcE16do_get_monthnameESt19istreambuf_iteratorIcSt11char_traitsIcEES6_RSt8ios_baseRSt12_Ios_IostateP2tm"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIwE11do_get_dateESt19istreambuf_iteratorIwSt11char_traitsIwEES6_RSt8ios_baseRSt12_Ios_IostateP2tm"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIwE11do_get_timeESt19istreambuf_iteratorIwSt11char_traitsIwEES6_RSt8ios_baseRSt12_Ios_IostateP2tm"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIwE11do_get_yearESt19istreambuf_iteratorIwSt11char_traitsIwEES6_RSt8ios_baseRSt12_Ios_IostateP2tm"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIwE13do_date_orderEv"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIwE14do_get_weekdayESt19istreambuf_iteratorIwSt11char_traitsIwEES6_RSt8ios_baseRSt12_Ios_IostateP2tm"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIwE16do_get_monthnameESt19istreambuf_iteratorIwSt11char_traitsIwEES6_RSt8ios_baseRSt12_Ios_IostateP2tm"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_get_shimIcE6do_getESt19istreambuf_iteratorIcSt11char_traitsIcEES6_bRSt8ios_baseRSt12_Ios_IostateRSs"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_get_shimIwE6do_getESt19istreambuf_iteratorIwSt11char_traitsIwEES6_bRSt8ios_baseRSt12_Ios_IostateRSbIwS5_SaIwEE"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_put_shimIcE6do_putESt19ostreambuf_iteratorIcSt11char_traitsIcEEbRSt8ios_basecRKSs"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_put_shimIwE6do_putESt19ostreambuf_iteratorIwSt11char_traitsIwEEbRSt8ios_basewRKSbIwS5_SaIwEE"); -+asm (".hidden _ZNKSt6locale5facet11_M_cow_shimEPKNS_2idE"); -+asm (".hidden _ZNKSt6locale5facet19_M_remove_referenceEv"); -+asm (".hidden _ZNSt13__facet_shims10__time_getIcEESt19istreambuf_iteratorIT_St11char_traitsIS2_EESt17integral_constantIbLb0EEPKNSt6locale5facetES5_S5_RSt8ios_baseRSt12_Ios_IostateP2tmc"); -+asm (".hidden _ZNSt13__facet_shims10__time_getIwEESt19istreambuf_iteratorIT_St11char_traitsIS2_EESt17integral_constantIbLb0EEPKNSt6locale5facetES5_S5_RSt8ios_baseRSt12_Ios_IostateP2tmc"); -+#if !defined (__powerpc__) && !defined (__s390__) && !defined (__s390x__) -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_get_shimIcE6do_getESt19istreambuf_iteratorIcSt11char_traitsIcEES6_bRSt8ios_baseRSt12_Ios_IostateRe"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_get_shimIwE6do_getESt19istreambuf_iteratorIwSt11char_traitsIwEES6_bRSt8ios_baseRSt12_Ios_IostateRe"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_put_shimIcE6do_putESt19ostreambuf_iteratorIcSt11char_traitsIcEEbRSt8ios_basece"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_put_shimIwE6do_putESt19ostreambuf_iteratorIwSt11char_traitsIwEEbRSt8ios_basewe"); -+asm (".hidden _ZNSt13__facet_shims11__money_getIcEESt19istreambuf_iteratorIT_St11char_traitsIS2_EESt17integral_constantIbLb0EEPKNSt6locale5facetES5_S5_bRSt8ios_baseRSt12_Ios_IostatePePNS_12__any_stringE"); -+asm (".hidden _ZNSt13__facet_shims11__money_getIwEESt19istreambuf_iteratorIT_St11char_traitsIS2_EESt17integral_constantIbLb0EEPKNSt6locale5facetES5_S5_bRSt8ios_baseRSt12_Ios_IostatePePNS_12__any_stringE"); -+asm (".hidden _ZNSt13__facet_shims11__money_putIcEESt19ostreambuf_iteratorIT_St11char_traitsIS2_EESt17integral_constantIbLb0EEPKNSt6locale5facetES5_bRSt8ios_baseS2_ePKNS_12__any_stringE"); -+asm (".hidden _ZNSt13__facet_shims11__money_putIwEESt19ostreambuf_iteratorIT_St11char_traitsIS2_EESt17integral_constantIbLb0EEPKNSt6locale5facetES5_bRSt8ios_baseS2_ePKNS_12__any_stringE"); -+#else -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_get_shimIcE6do_getESt19istreambuf_iteratorIcSt11char_traitsIcEES6_bRSt8ios_baseRSt12_Ios_IostateRg"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_get_shimIwE6do_getESt19istreambuf_iteratorIwSt11char_traitsIwEES6_bRSt8ios_baseRSt12_Ios_IostateRg"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_put_shimIcE6do_putESt19ostreambuf_iteratorIcSt11char_traitsIcEEbRSt8ios_basecg"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_put_shimIwE6do_putESt19ostreambuf_iteratorIwSt11char_traitsIwEEbRSt8ios_basewg"); -+//asm (".hidden _ZNSt13__facet_shims11__money_getIcEESt19istreambuf_iteratorIT_St11char_traitsIS2_EESt17integral_constantIbLb0EEPKNSt6locale5facetES5_S5_bRSt8ios_baseRSt12_Ios_IostatePgPNS_12__any_stringE"); -+//asm (".hidden _ZNSt13__facet_shims11__money_getIwEESt19istreambuf_iteratorIT_St11char_traitsIS2_EESt17integral_constantIbLb0EEPKNSt6locale5facetES5_S5_bRSt8ios_baseRSt12_Ios_IostatePgPNS_12__any_stringE"); -+//asm (".hidden _ZNSt13__facet_shims11__money_putIcEESt19ostreambuf_iteratorIT_St11char_traitsIS2_EESt17integral_constantIbLb0EEPKNSt6locale5facetES5_bRSt8ios_baseS2_gPKNS_12__any_stringE"); -+//asm (".hidden _ZNSt13__facet_shims11__money_putIwEESt19ostreambuf_iteratorIT_St11char_traitsIS2_EESt17integral_constantIbLb0EEPKNSt6locale5facetES5_bRSt8ios_baseS2_gPKNS_12__any_stringE"); -+#endif -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_112collate_shimIcED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_112collate_shimIcED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_112collate_shimIcED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_112collate_shimIwED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_112collate_shimIwED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_112collate_shimIwED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113messages_shimIcED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113messages_shimIcED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113messages_shimIcED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113messages_shimIwED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113messages_shimIwED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113messages_shimIwED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113numpunct_shimIcED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113numpunct_shimIcED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113numpunct_shimIcED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113numpunct_shimIwED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113numpunct_shimIwED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113numpunct_shimIwED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113time_get_shimIcED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113time_get_shimIcED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113time_get_shimIcED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113time_get_shimIwED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113time_get_shimIwED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113time_get_shimIwED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_get_shimIcED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_get_shimIcED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_get_shimIcED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_get_shimIwED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_get_shimIwED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_get_shimIwED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_put_shimIcED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_put_shimIcED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_put_shimIcED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_put_shimIwED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_put_shimIwED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_put_shimIwED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIcLb0EED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIcLb0EED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIcLb0EED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIcLb1EED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIcLb1EED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIcLb1EED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIwLb0EED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIwLb0EED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIwLb0EED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIwLb1EED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIwLb1EED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIwLb1EED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_116__destroy_stringIcEEvPv"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_116__destroy_stringIwEEvPv"); -+asm (".hidden _ZNSt13__facet_shims16__messages_closeIcEEvSt17integral_constantIbLb0EEPKNSt6locale5facetEi"); -+asm (".hidden _ZNSt13__facet_shims16__messages_closeIwEEvSt17integral_constantIbLb0EEPKNSt6locale5facetEi"); -+asm (".hidden _ZNSt13__facet_shims17__collate_compareIcEEiSt17integral_constantIbLb0EEPKNSt6locale5facetEPKT_S9_S9_S9_"); -+asm (".hidden _ZNSt13__facet_shims17__collate_compareIwEEiSt17integral_constantIbLb0EEPKNSt6locale5facetEPKT_S9_S9_S9_"); -+asm (".hidden _ZNSt13__facet_shims19__collate_transformIcEEvSt17integral_constantIbLb0EEPKNSt6locale5facetERNS_12__any_stringEPKT_SB_"); -+asm (".hidden _ZNSt13__facet_shims19__collate_transformIwEEvSt17integral_constantIbLb0EEPKNSt6locale5facetERNS_12__any_stringEPKT_SB_"); -+asm (".hidden _ZNSt13__facet_shims20__time_get_dateorderIcEENSt9time_base9dateorderESt17integral_constantIbLb0EEPKNSt6locale5facetE"); -+asm (".hidden _ZNSt13__facet_shims20__time_get_dateorderIwEENSt9time_base9dateorderESt17integral_constantIbLb0EEPKNSt6locale5facetE"); -+asm (".hidden _ZNSt13__facet_shims23__moneypunct_fill_cacheIcLb0EEEvSt17integral_constantIbLb0EEPKNSt6locale5facetEPSt18__moneypunct_cacheIT_XT0_EE"); -+asm (".hidden _ZNSt13__facet_shims23__moneypunct_fill_cacheIcLb1EEEvSt17integral_constantIbLb0EEPKNSt6locale5facetEPSt18__moneypunct_cacheIT_XT0_EE"); -+asm (".hidden _ZNSt13__facet_shims23__moneypunct_fill_cacheIwLb0EEEvSt17integral_constantIbLb0EEPKNSt6locale5facetEPSt18__moneypunct_cacheIT_XT0_EE"); -+asm (".hidden _ZNSt13__facet_shims23__moneypunct_fill_cacheIwLb1EEEvSt17integral_constantIbLb0EEPKNSt6locale5facetEPSt18__moneypunct_cacheIT_XT0_EE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_112collate_shimIcEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_112collate_shimIwEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_113messages_shimIcEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_113messages_shimIwEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_113numpunct_shimIcEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_113numpunct_shimIwEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_113time_get_shimIcEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_113time_get_shimIwEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_114money_get_shimIcEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_114money_get_shimIwEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_114money_put_shimIcEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_114money_put_shimIwEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIcLb0EEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIcLb1EEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIwLb0EEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIwLb1EEE"); -+asm (".hidden _ZTINSt6locale5facet6__shimE"); -+asm (".hidden _ZTSNSt6locale5facet6__shimE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_112collate_shimIcEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_112collate_shimIwEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_113messages_shimIcEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_113messages_shimIwEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_113numpunct_shimIcEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_113numpunct_shimIwEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_113time_get_shimIcEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_113time_get_shimIwEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_114money_get_shimIcEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_114money_get_shimIwEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_114money_put_shimIcEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_114money_put_shimIwEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIcLb0EEE"); -+//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"); -+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__)) -+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_"); -+asm (".hidden _ZNSt13__facet_shims15__messages_openIwEEiSt17integral_constantIbLb0EEPKNSt6locale5facetEPKcjRKS3_"); -+#else -+asm (".hidden _ZNSt13__facet_shims14__messages_getIcEEvSt17integral_constantIbLb0EEPKNSt6locale5facetERNS_12__any_stringEiiiPKT_m"); -+asm (".hidden _ZNSt13__facet_shims14__messages_getIwEEvSt17integral_constantIbLb0EEPKNSt6locale5facetERNS_12__any_stringEiiiPKT_m"); -+asm (".hidden _ZNSt13__facet_shims15__messages_openIcEEiSt17integral_constantIbLb0EEPKNSt6locale5facetEPKcmRKS3_"); -+asm (".hidden _ZNSt13__facet_shims15__messages_openIwEEiSt17integral_constantIbLb0EEPKNSt6locale5facetEPKcmRKS3_"); -+#endif -+#ifdef __powerpc64__ -+//asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEED1Ev"); -+//asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEED2Ev"); -+//asm (".hidden _ZNSsD1Ev"); -+//asm (".hidden _ZNSsD2Ev"); -+#endif -diff --git a/libstdc++-v3/src/nonshared11/cow-sstream-inst.cc b/libstdc++-v3/src/nonshared11/cow-sstream-inst.cc +diff --git a/libstdc++-v3/src/nonshared11/cow-sstream-inst80.cc b/libstdc++-v3/src/nonshared11/cow-sstream-inst80.cc new file mode 100644 -index 000000000..1473d5a3a +index 000000000..bc72608d3 --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/cow-sstream-inst.cc -@@ -0,0 +1,85 @@ -+// Explicit instantiation file. -+ -+// Copyright (C) 2014-2023 Free Software Foundation, Inc. ++++ b/libstdc++-v3/src/nonshared11/cow-sstream-inst80.cc +@@ -0,0 +1,53 @@ ++// Copyright (C) 2012-2024 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 @@ -2901,36 +2036,6 @@ index 000000000..1473d5a3a +{ +_GLIBCXX_BEGIN_NAMESPACE_VERSION + -+#ifndef _GLIBCXX_NONSHARED_CXX11_80 -+ template basic_stringbuf::basic_stringbuf(basic_stringbuf&&); -+ template basic_stringbuf& basic_stringbuf::operator=(basic_stringbuf&&); -+ template void basic_stringbuf::swap(basic_stringbuf&); -+ template basic_istringstream::basic_istringstream(basic_istringstream&&); -+ template basic_istringstream& basic_istringstream::operator=(basic_istringstream&&); -+ template void basic_istringstream::swap(basic_istringstream&); -+ template basic_ostringstream::basic_ostringstream(basic_ostringstream&&); -+ template basic_ostringstream& basic_ostringstream::operator=(basic_ostringstream&&); -+ template void basic_ostringstream::swap(basic_ostringstream&); -+ template basic_stringstream::basic_stringstream(basic_stringstream&&); -+ template basic_stringstream& basic_stringstream::operator=(basic_stringstream&&); -+ template void basic_stringstream::swap(basic_stringstream&); -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template basic_stringbuf::basic_stringbuf(basic_stringbuf&&); -+ template basic_stringbuf& basic_stringbuf::operator=(basic_stringbuf&&); -+ template void basic_stringbuf::swap(basic_stringbuf&); -+ template basic_istringstream::basic_istringstream(basic_istringstream&&); -+ template basic_istringstream& basic_istringstream::operator=(basic_istringstream&&); -+ template void basic_istringstream::swap(basic_istringstream&); -+ template basic_ostringstream::basic_ostringstream(basic_ostringstream&&); -+ template basic_ostringstream& basic_ostringstream::operator=(basic_ostringstream&&); -+ template void basic_ostringstream::swap(basic_ostringstream&); -+ template basic_stringstream::basic_stringstream(basic_stringstream&&); -+ template basic_stringstream& basic_stringstream::operator=(basic_stringstream&&); -+ template void basic_stringstream::swap(basic_stringstream&); -+#endif -+#endif -+ + template basic_stringbuf::basic_stringbuf(); + template basic_istringstream::basic_istringstream(); + template basic_ostringstream::basic_ostringstream(); @@ -2951,93 +2056,6 @@ index 000000000..1473d5a3a +asm (".hidden _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev"); +asm (".hidden _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev"); +asm (".hidden _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED2Ev"); -diff --git a/libstdc++-v3/src/nonshared11/cow-sstream-inst80.cc b/libstdc++-v3/src/nonshared11/cow-sstream-inst80.cc -new file mode 100644 -index 000000000..714e17a08 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/cow-sstream-inst80.cc -@@ -0,0 +1,24 @@ -+// Copyright (C) 2012-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_NONSHARED_CXX11_80 -+#include "cow-sstream-inst.cc" -diff --git a/libstdc++-v3/src/nonshared11/cow-stdexcept.cc b/libstdc++-v3/src/nonshared11/cow-stdexcept.cc -new file mode 100644 -index 000000000..691a63abd ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/cow-stdexcept.cc -@@ -0,0 +1,51 @@ -+// Copyright (C) 2012-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include "../c++11/cow-stdexcept.cc" -+asm (".hidden _ZNSt12__cow_stringC1EOS_"); -+asm (".hidden _ZNSt12__cow_stringC1ERKS_"); -+asm (".hidden _ZNSt12__cow_stringC1ERKSs"); -+asm (".hidden _ZNSt12__cow_stringC1Ev"); -+asm (".hidden _ZNSt12__cow_stringC2EOS_"); -+asm (".hidden _ZNSt12__cow_stringC2ERKS_"); -+asm (".hidden _ZNSt12__cow_stringC2ERKSs"); -+asm (".hidden _ZNSt12__cow_stringC2Ev"); -+asm (".hidden _ZNSt12__cow_stringD1Ev"); -+asm (".hidden _ZNSt12__cow_stringD2Ev"); -+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__)) -+asm (".hidden _ZNSt12__cow_stringC1EPKcj"); -+asm (".hidden _ZNSt12__cow_stringC2EPKcj"); -+#else -+asm (".hidden _ZNSt12__cow_stringC1EPKcm"); -+asm (".hidden _ZNSt12__cow_stringC2EPKcm"); -+#endif -+asm (".hidden _Z20_txnal_cow_string_D1Pv"); -+asm (".hidden _Z23_txnal_cow_string_c_strPKv"); -+asm (".hidden _Z23_txnal_sso_string_c_strPKv"); -+asm (".hidden _Z26_txnal_logic_error_get_msgPv"); -+asm (".hidden _Z27_txnal_cow_string_D1_commitPv"); -+asm (".hidden _Z28_txnal_runtime_error_get_msgPv"); -+asm (".hidden _Z35_txnal_cow_string_C1_for_exceptionsPvPKcS_"); diff --git a/libstdc++-v3/src/nonshared11/cow-stdexcept80.cc b/libstdc++-v3/src/nonshared11/cow-stdexcept80.cc new file mode 100644 index 000000000..e9f279369 @@ -3120,15 +2138,15 @@ index 000000000..e9f279369 +#endif +_GLIBCXX_END_NAMESPACE_VERSION +} // namespace -diff --git a/libstdc++-v3/src/nonshared11/cow-string-inst48.cc b/libstdc++-v3/src/nonshared11/cow-string-inst48.cc +diff --git a/libstdc++-v3/src/nonshared11/cow-string-inst80.cc b/libstdc++-v3/src/nonshared11/cow-string-inst80.cc new file mode 100644 -index 000000000..fa999f1c4 +index 000000000..cb10cd9c4 --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/cow-string-inst48.cc -@@ -0,0 +1,57 @@ ++++ b/libstdc++-v3/src/nonshared11/cow-string-inst80.cc +@@ -0,0 +1,52 @@ +// Components for manipulating sequences of characters -*- C++ -*- + -+// Copyright (C) 1997-2023 Free Software Foundation, Inc. ++// Copyright (C) 1997-2024 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 @@ -3164,16 +2182,11 @@ index 000000000..fa999f1c4 +#endif +#include + -+namespace std _GLIBCXX_VISIBILITY(default) ++namespace std _GLIBCXX_VISIBILITY(default) +{ + + typedef basic_string S; + -+#ifndef _GLIBCXX_NONSHARED_CXX11_80 -+ template -+ S::basic_string(const S&, size_type, const allocator_type&); -+#endif -+ + template + S::basic_string(const S&, const allocator_type&); + @@ -3183,41 +2196,11 @@ index 000000000..fa999f1c4 + template + void S::reserve(); +} -diff --git a/libstdc++-v3/src/nonshared11/cow-string-inst80.cc b/libstdc++-v3/src/nonshared11/cow-string-inst80.cc -new file mode 100644 -index 000000000..6da58faf6 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/cow-string-inst80.cc -@@ -0,0 +1,24 @@ -+// Copyright (C) 2012-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_NONSHARED_CXX11_80 -+#include "cow-string-inst48.cc" -diff --git a/libstdc++-v3/src/nonshared11/cow-wstring-inst48.cc b/libstdc++-v3/src/nonshared11/cow-wstring-inst48.cc +diff --git a/libstdc++-v3/src/nonshared11/cow-wstring-inst80.cc b/libstdc++-v3/src/nonshared11/cow-wstring-inst80.cc new file mode 100644 -index 000000000..b4c53e2d7 +index 000000000..e6ebb2f0a --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/cow-wstring-inst48.cc ++++ b/libstdc++-v3/src/nonshared11/cow-wstring-inst80.cc @@ -0,0 +1,35 @@ +// wide string support -*- C++ -*- + @@ -3252,128 +2235,15 @@ index 000000000..b4c53e2d7 + +#ifdef _GLIBCXX_USE_WCHAR_T +#define C wchar_t -+#include "cow-string-inst48.cc" ++#include "cow-string-inst80.cc" +#endif -diff --git a/libstdc++-v3/src/nonshared11/cow-wstring-inst80.cc b/libstdc++-v3/src/nonshared11/cow-wstring-inst80.cc +diff --git a/libstdc++-v3/src/nonshared11/cxx11-ios_failure80.cc b/libstdc++-v3/src/nonshared11/cxx11-ios_failure80.cc new file mode 100644 -index 000000000..e6ebb2f0a +index 000000000..514cd21d4 --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/cow-wstring-inst80.cc -@@ -0,0 +1,35 @@ -+// wide string support -*- C++ -*- -+ -+// Copyright (C) 1999-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+// -+// ISO C++ 14882: 21 Strings library -+// -+ -+#define _GLIBCXX_USE_CXX11_ABI 0 -+#include -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+#define C wchar_t -+#include "cow-string-inst80.cc" -+#endif -diff --git a/libstdc++-v3/src/nonshared11/ctype.cc b/libstdc++-v3/src/nonshared11/ctype.cc -new file mode 100644 -index 000000000..30deac94f ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/ctype.cc -@@ -0,0 +1,35 @@ -+// Copyright (C) 1997-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include -+#include -+#include -+ -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+_GLIBCXX_BEGIN_NAMESPACE_VERSION -+ -+ // Definitions for static const data members of ctype_base. -+ const ctype_base::mask ctype_base::blank; -+ -+_GLIBCXX_END_NAMESPACE_VERSION -+} // namespace -diff --git a/libstdc++-v3/src/nonshared11/cxx11-hash_tr1.cc b/libstdc++-v3/src/nonshared11/cxx11-hash_tr1.cc -new file mode 100644 -index 000000000..f6ff6aad8 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/cxx11-hash_tr1.cc -@@ -0,0 +1,25 @@ -+// Copyright (C) 2012-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include "../c++11/cxx11-hash_tr1.cc" -+asm (".hidden _ZNKSt3tr14hashIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclES8_"); -+asm (".hidden _ZNKSt3tr14hashIRKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEEclES8_"); -diff --git a/libstdc++-v3/src/nonshared11/cxx11-ios_failure.cc b/libstdc++-v3/src/nonshared11/cxx11-ios_failure.cc -new file mode 100644 -index 000000000..349e776d9 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/cxx11-ios_failure.cc -@@ -0,0 +1,43 @@ -+// Copyright (C) 2012-2023 Free Software Foundation, Inc. ++++ b/libstdc++-v3/src/nonshared11/cxx11-ios_failure80.cc +@@ -0,0 +1,50 @@ ++// Copyright (C) 2012-2024 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 @@ -3409,43 +2279,6 @@ index 000000000..349e776d9 +asm (".hidden _ZTSSt19__iosfail_type_info"); +asm (".hidden _ZTVSt13__ios_failure"); +asm (".hidden _ZTVSt19__iosfail_type_info"); -+#ifndef _GLIBCXX_NONSHARED_CXX11_80 -+asm (".hidden _ZSt19__throw_ios_failurePKc"); -+//asm (".hidden _ZNSt12system_errorC1ESt10error_codePKc"); -+//asm (".hidden _ZNSt12system_errorC2ESt10error_codePKc"); -+asm (".hidden _ZNSt12system_errorC2ESt10error_codeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"); -+asm (".hidden _ZNSt12system_errorC1ESt10error_codeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"); -+#endif -diff --git a/libstdc++-v3/src/nonshared11/cxx11-ios_failure80.cc b/libstdc++-v3/src/nonshared11/cxx11-ios_failure80.cc -new file mode 100644 -index 000000000..971c3d2eb ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/cxx11-ios_failure80.cc -@@ -0,0 +1,37 @@ -+// Copyright (C) 2012-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_NONSHARED_CXX11_80 -+#include "cxx11-ios_failure.cc" +asm (".hidden _ZNSt8ios_base7failureB5cxx11D2Ev"); +asm (".hidden _ZTVNSt8ios_base7failureB5cxx11E"); +asm (".hidden _ZNSt8ios_base7failureB5cxx11D1Ev"); @@ -3459,61 +2292,7 @@ index 000000000..971c3d2eb +asm (".hidden _ZNSt8ios_base7failureB5cxx11C1EPKcRKSt10error_code"); +asm (".hidden _ZTSNSt8ios_base7failureB5cxx11E"); +asm (".hidden _ZTINSt8ios_base7failureB5cxx11E"); -diff --git a/libstdc++-v3/src/nonshared11/cxx11-locale-inst.cc b/libstdc++-v3/src/nonshared11/cxx11-locale-inst.cc -new file mode 100644 -index 000000000..e60e180af ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/cxx11-locale-inst.cc -@@ -0,0 +1,49 @@ -+// Copyright (C) 2012-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include "../c++11/cxx11-locale-inst.cc" -+#if !defined (__powerpc__) && !defined (__s390__) && !defined (__s390x__) -+asm (".hidden _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intB5cxx11IjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_"); -+asm (".hidden _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intB5cxx11IlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_"); -+asm (".hidden _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intB5cxx11ImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_"); -+asm (".hidden _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intB5cxx11ItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_"); -+asm (".hidden _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intB5cxx11IxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_"); -+asm (".hidden _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intB5cxx11IyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_"); -+#else -+//asm (".hidden _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intB5cxx11IjEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_"); -+//asm (".hidden _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intB5cxx11IlEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_"); -+//asm (".hidden _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intB5cxx11ImEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_"); -+//asm (".hidden _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intB5cxx11ItEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_"); -+//asm (".hidden _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intB5cxx11IxEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_"); -+//asm (".hidden _ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intB5cxx11IyEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_"); -+#endif -+asm (".hidden _ZNKSt5ctypeIcE8do_widenEPKcS2_Pc"); -+asm (".hidden _ZNKSt5ctypeIcE9do_narrowEcc"); -+asm (".hidden _ZSt16__convert_from_vRKP15__locale_structPciPKcz"); -+asm (".hidden _ZTISt10money_base"); -+asm (".hidden _ZTISt13messages_base"); -+asm (".hidden _ZTISt9time_base"); -+asm (".hidden _ZTSSt10money_base"); -+asm (".hidden _ZTSSt13messages_base"); -+asm (".hidden _ZTSSt9time_base"); -+asm (".hidden _ZNKSt5ctypeIcE8do_widenEc"); -+asm (".hidden _ZNKSt19istreambuf_iteratorIcSt11char_traitsIcEE6_M_getEv"); ++asm (".hidden _ZSt19__throw_ios_failurePKc"); diff --git a/libstdc++-v3/src/nonshared11/cxx11-locale-inst110.cc b/libstdc++-v3/src/nonshared11/cxx11-locale-inst110.cc new file mode 100644 index 000000000..f8573a86e @@ -3628,200 +2407,13 @@ index 000000000..fadd719ed +asm (".hidden _ZNKSt5ctypeIcE8do_widenEPKcS2_Pc"); +asm (".hidden _ZNKSt19istreambuf_iteratorIcSt11char_traitsIcEE6_M_getEv"); +#endif -diff --git a/libstdc++-v3/src/nonshared11/cxx11-shim_facets.cc b/libstdc++-v3/src/nonshared11/cxx11-shim_facets.cc -new file mode 100644 -index 000000000..17e4cc429 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/cxx11-shim_facets.cc -@@ -0,0 +1,181 @@ -+// Copyright (C) 2012-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include "../c++11/cxx11-shim_facets.cc" -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_112collate_shimIcE10do_compareEPKcS4_S4_S4_"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_112collate_shimIcE12do_transformEPKcS4_"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_112collate_shimIwE10do_compareEPKwS4_S4_S4_"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_112collate_shimIwE12do_transformEPKwS4_"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113messages_shimIcE6do_getEiiiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113messages_shimIcE7do_openERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6locale"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113messages_shimIcE8do_closeEi"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113messages_shimIwE6do_getEiiiRKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113messages_shimIwE7do_openERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6locale"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113messages_shimIwE8do_closeEi"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIcE11do_get_dateESt19istreambuf_iteratorIcSt11char_traitsIcEES6_RSt8ios_baseRSt12_Ios_IostateP2tm"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIcE11do_get_timeESt19istreambuf_iteratorIcSt11char_traitsIcEES6_RSt8ios_baseRSt12_Ios_IostateP2tm"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIcE11do_get_yearESt19istreambuf_iteratorIcSt11char_traitsIcEES6_RSt8ios_baseRSt12_Ios_IostateP2tm"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIcE13do_date_orderEv"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIcE14do_get_weekdayESt19istreambuf_iteratorIcSt11char_traitsIcEES6_RSt8ios_baseRSt12_Ios_IostateP2tm"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIcE16do_get_monthnameESt19istreambuf_iteratorIcSt11char_traitsIcEES6_RSt8ios_baseRSt12_Ios_IostateP2tm"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIwE11do_get_dateESt19istreambuf_iteratorIwSt11char_traitsIwEES6_RSt8ios_baseRSt12_Ios_IostateP2tm"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIwE11do_get_timeESt19istreambuf_iteratorIwSt11char_traitsIwEES6_RSt8ios_baseRSt12_Ios_IostateP2tm"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIwE11do_get_yearESt19istreambuf_iteratorIwSt11char_traitsIwEES6_RSt8ios_baseRSt12_Ios_IostateP2tm"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIwE13do_date_orderEv"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIwE14do_get_weekdayESt19istreambuf_iteratorIwSt11char_traitsIwEES6_RSt8ios_baseRSt12_Ios_IostateP2tm"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_113time_get_shimIwE16do_get_monthnameESt19istreambuf_iteratorIwSt11char_traitsIwEES6_RSt8ios_baseRSt12_Ios_IostateP2tm"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_get_shimIcE6do_getESt19istreambuf_iteratorIcSt11char_traitsIcEES6_bRSt8ios_baseRSt12_Ios_IostateRNSt7__cxx1112basic_stringIcS5_SaIcEEE"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_get_shimIwE6do_getESt19istreambuf_iteratorIwSt11char_traitsIwEES6_bRSt8ios_baseRSt12_Ios_IostateRNSt7__cxx1112basic_stringIwS5_SaIwEEE"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_put_shimIcE6do_putESt19ostreambuf_iteratorIcSt11char_traitsIcEEbRSt8ios_basecRKNSt7__cxx1112basic_stringIcS5_SaIcEEE"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_put_shimIwE6do_putESt19ostreambuf_iteratorIwSt11char_traitsIwEEbRSt8ios_basewRKNSt7__cxx1112basic_stringIwS5_SaIwEEE"); -+asm (".hidden _ZNKSt6locale5facet11_M_sso_shimEPKNS_2idE"); -+//asm (".hidden _ZNKSt6locale5facet19_M_remove_referenceEv"); -+asm (".hidden _ZNSt13__facet_shims10__time_getIcEESt19istreambuf_iteratorIT_St11char_traitsIS2_EESt17integral_constantIbLb1EEPKNSt6locale5facetES5_S5_RSt8ios_baseRSt12_Ios_IostateP2tmc"); -+asm (".hidden _ZNSt13__facet_shims10__time_getIwEESt19istreambuf_iteratorIT_St11char_traitsIS2_EESt17integral_constantIbLb1EEPKNSt6locale5facetES5_S5_RSt8ios_baseRSt12_Ios_IostateP2tmc"); -+#if !defined (__powerpc__) && !defined (__s390__) && !defined (__s390x__) -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_get_shimIcE6do_getESt19istreambuf_iteratorIcSt11char_traitsIcEES6_bRSt8ios_baseRSt12_Ios_IostateRe"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_get_shimIwE6do_getESt19istreambuf_iteratorIwSt11char_traitsIwEES6_bRSt8ios_baseRSt12_Ios_IostateRe"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_put_shimIcE6do_putESt19ostreambuf_iteratorIcSt11char_traitsIcEEbRSt8ios_basece"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_put_shimIwE6do_putESt19ostreambuf_iteratorIwSt11char_traitsIwEEbRSt8ios_basewe"); -+asm (".hidden _ZNSt13__facet_shims11__money_getIcEESt19istreambuf_iteratorIT_St11char_traitsIS2_EESt17integral_constantIbLb1EEPKNSt6locale5facetES5_S5_bRSt8ios_baseRSt12_Ios_IostatePePNS_12__any_stringE"); -+asm (".hidden _ZNSt13__facet_shims11__money_getIwEESt19istreambuf_iteratorIT_St11char_traitsIS2_EESt17integral_constantIbLb1EEPKNSt6locale5facetES5_S5_bRSt8ios_baseRSt12_Ios_IostatePePNS_12__any_stringE"); -+asm (".hidden _ZNSt13__facet_shims11__money_putIcEESt19ostreambuf_iteratorIT_St11char_traitsIS2_EESt17integral_constantIbLb1EEPKNSt6locale5facetES5_bRSt8ios_baseS2_ePKNS_12__any_stringE"); -+asm (".hidden _ZNSt13__facet_shims11__money_putIwEESt19ostreambuf_iteratorIT_St11char_traitsIS2_EESt17integral_constantIbLb1EEPKNSt6locale5facetES5_bRSt8ios_baseS2_ePKNS_12__any_stringE"); -+#else -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_get_shimIcE6do_getESt19istreambuf_iteratorIcSt11char_traitsIcEES6_bRSt8ios_baseRSt12_Ios_IostateRg"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_get_shimIwE6do_getESt19istreambuf_iteratorIwSt11char_traitsIwEES6_bRSt8ios_baseRSt12_Ios_IostateRg"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_put_shimIcE6do_putESt19ostreambuf_iteratorIcSt11char_traitsIcEEbRSt8ios_basecg"); -+//asm (".hidden _ZNKSt13__facet_shims12_GLOBAL__N_114money_put_shimIwE6do_putESt19ostreambuf_iteratorIwSt11char_traitsIwEEbRSt8ios_basewg"); -+//asm (".hidden _ZNSt13__facet_shims11__money_getIcEESt19istreambuf_iteratorIT_St11char_traitsIS2_EESt17integral_constantIbLb1EEPKNSt6locale5facetES5_S5_bRSt8ios_baseRSt12_Ios_IostatePgPNS_12__any_stringE"); -+//asm (".hidden _ZNSt13__facet_shims11__money_getIwEESt19istreambuf_iteratorIT_St11char_traitsIS2_EESt17integral_constantIbLb1EEPKNSt6locale5facetES5_S5_bRSt8ios_baseRSt12_Ios_IostatePgPNS_12__any_stringE"); -+//asm (".hidden _ZNSt13__facet_shims11__money_putIcEESt19ostreambuf_iteratorIT_St11char_traitsIS2_EESt17integral_constantIbLb1EEPKNSt6locale5facetES5_bRSt8ios_baseS2_gPKNS_12__any_stringE"); -+//asm (".hidden _ZNSt13__facet_shims11__money_putIwEESt19ostreambuf_iteratorIT_St11char_traitsIS2_EESt17integral_constantIbLb1EEPKNSt6locale5facetES5_bRSt8ios_baseS2_gPKNS_12__any_stringE"); -+#endif -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_112collate_shimIcED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_112collate_shimIcED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_112collate_shimIcED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_112collate_shimIwED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_112collate_shimIwED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_112collate_shimIwED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113messages_shimIcED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113messages_shimIcED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113messages_shimIcED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113messages_shimIwED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113messages_shimIwED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113messages_shimIwED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113numpunct_shimIcED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113numpunct_shimIcED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113numpunct_shimIcED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113numpunct_shimIwED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113numpunct_shimIwED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113numpunct_shimIwED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113time_get_shimIcED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113time_get_shimIcED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113time_get_shimIcED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113time_get_shimIwED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113time_get_shimIwED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_113time_get_shimIwED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_get_shimIcED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_get_shimIcED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_get_shimIcED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_get_shimIwED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_get_shimIwED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_get_shimIwED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_put_shimIcED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_put_shimIcED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_put_shimIcED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_put_shimIwED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_put_shimIwED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_114money_put_shimIwED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIcLb0EED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIcLb0EED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIcLb0EED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIcLb1EED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIcLb1EED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIcLb1EED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIwLb0EED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIwLb0EED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIwLb0EED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIwLb1EED0Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIwLb1EED1Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIwLb1EED2Ev"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_116__destroy_stringIcEEvPv"); -+//asm (".hidden _ZNSt13__facet_shims12_GLOBAL__N_116__destroy_stringIwEEvPv"); -+asm (".hidden _ZNSt13__facet_shims16__messages_closeIcEEvSt17integral_constantIbLb1EEPKNSt6locale5facetEi"); -+asm (".hidden _ZNSt13__facet_shims16__messages_closeIwEEvSt17integral_constantIbLb1EEPKNSt6locale5facetEi"); -+asm (".hidden _ZNSt13__facet_shims17__collate_compareIcEEiSt17integral_constantIbLb1EEPKNSt6locale5facetEPKT_S9_S9_S9_"); -+asm (".hidden _ZNSt13__facet_shims17__collate_compareIwEEiSt17integral_constantIbLb1EEPKNSt6locale5facetEPKT_S9_S9_S9_"); -+asm (".hidden _ZNSt13__facet_shims19__collate_transformIcEEvSt17integral_constantIbLb1EEPKNSt6locale5facetERNS_12__any_stringEPKT_SB_"); -+asm (".hidden _ZNSt13__facet_shims19__collate_transformIwEEvSt17integral_constantIbLb1EEPKNSt6locale5facetERNS_12__any_stringEPKT_SB_"); -+asm (".hidden _ZNSt13__facet_shims20__time_get_dateorderIcEENSt9time_base9dateorderESt17integral_constantIbLb1EEPKNSt6locale5facetE"); -+asm (".hidden _ZNSt13__facet_shims20__time_get_dateorderIwEENSt9time_base9dateorderESt17integral_constantIbLb1EEPKNSt6locale5facetE"); -+asm (".hidden _ZNSt13__facet_shims21__numpunct_fill_cacheIcEEvSt17integral_constantIbLb1EEPKNSt6locale5facetEPSt16__numpunct_cacheIT_E"); -+asm (".hidden _ZNSt13__facet_shims21__numpunct_fill_cacheIwEEvSt17integral_constantIbLb1EEPKNSt6locale5facetEPSt16__numpunct_cacheIT_E"); -+asm (".hidden _ZNSt13__facet_shims23__moneypunct_fill_cacheIcLb0EEEvSt17integral_constantIbLb1EEPKNSt6locale5facetEPSt18__moneypunct_cacheIT_XT0_EE"); -+asm (".hidden _ZNSt13__facet_shims23__moneypunct_fill_cacheIcLb1EEEvSt17integral_constantIbLb1EEPKNSt6locale5facetEPSt18__moneypunct_cacheIT_XT0_EE"); -+asm (".hidden _ZNSt13__facet_shims23__moneypunct_fill_cacheIwLb0EEEvSt17integral_constantIbLb1EEPKNSt6locale5facetEPSt18__moneypunct_cacheIT_XT0_EE"); -+asm (".hidden _ZNSt13__facet_shims23__moneypunct_fill_cacheIwLb1EEEvSt17integral_constantIbLb1EEPKNSt6locale5facetEPSt18__moneypunct_cacheIT_XT0_EE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_112collate_shimIcEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_112collate_shimIwEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_113messages_shimIcEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_113messages_shimIwEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_113numpunct_shimIcEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_113numpunct_shimIwEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_113time_get_shimIcEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_113time_get_shimIwEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_114money_get_shimIcEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_114money_get_shimIwEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_114money_put_shimIcEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_114money_put_shimIwEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIcLb0EEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIcLb1EEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIwLb0EEE"); -+//asm (".hidden _ZTINSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIwLb1EEE"); -+//asm (".hidden _ZTINSt6locale5facet6__shimE"); -+//asm (".hidden _ZTSNSt6locale5facet6__shimE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_112collate_shimIcEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_112collate_shimIwEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_113messages_shimIcEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_113messages_shimIwEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_113numpunct_shimIcEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_113numpunct_shimIwEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_113time_get_shimIcEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_113time_get_shimIwEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_114money_get_shimIcEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_114money_get_shimIwEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_114money_put_shimIcEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_114money_put_shimIwEE"); -+//asm (".hidden _ZTVNSt13__facet_shims12_GLOBAL__N_115moneypunct_shimIcLb0EEE"); -+//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__)) -+//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_"); -+//asm (".hidden _ZNSt13__facet_shims15__messages_openIwEEiSt17integral_constantIbLb1EEPKNSt6locale5facetEPKcjRKS3_"); -+#else -+asm (".hidden _ZNSt13__facet_shims14__messages_getIcEEvSt17integral_constantIbLb1EEPKNSt6locale5facetERNS_12__any_stringEiiiPKT_m"); -+asm (".hidden _ZNSt13__facet_shims14__messages_getIwEEvSt17integral_constantIbLb1EEPKNSt6locale5facetERNS_12__any_stringEiiiPKT_m"); -+asm (".hidden _ZNSt13__facet_shims15__messages_openIcEEiSt17integral_constantIbLb1EEPKNSt6locale5facetEPKcmRKS3_"); -+asm (".hidden _ZNSt13__facet_shims15__messages_openIwEEiSt17integral_constantIbLb1EEPKNSt6locale5facetEPKcmRKS3_"); -+#endif -diff --git a/libstdc++-v3/src/nonshared11/cxx11-stdexcept.cc b/libstdc++-v3/src/nonshared11/cxx11-stdexcept.cc +diff --git a/libstdc++-v3/src/nonshared11/cxx11-wlocale-inst110.cc b/libstdc++-v3/src/nonshared11/cxx11-wlocale-inst110.cc new file mode 100644 -index 000000000..7bc854068 +index 000000000..6af5461c8 --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/cxx11-stdexcept.cc -@@ -0,0 +1,25 @@ -+// Copyright (C) 2012-2023 Free Software Foundation, Inc. ++++ b/libstdc++-v3/src/nonshared11/cxx11-wlocale-inst110.cc +@@ -0,0 +1,30 @@ ++// Copyright (C) 2022-2024 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 @@ -3843,74 +2435,21 @@ index 000000000..7bc854068 +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+#include "../c++11/cxx11-stdexcept.cc" -+asm (".hidden _ZNSt12__cow_stringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"); -+asm (".hidden _ZNSt12__cow_stringC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"); -diff --git a/libstdc++-v3/src/nonshared11/cxx11-wlocale-inst.cc b/libstdc++-v3/src/nonshared11/cxx11-wlocale-inst.cc -new file mode 100644 -index 000000000..2b628e858 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/cxx11-wlocale-inst.cc -@@ -0,0 +1,52 @@ -+// Copyright (C) 2012-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . ++#define _GLIBCXX_USE_CXX11_ABI 1 ++#include + -+#include "../c++11/cxx11-wlocale-inst.cc" -+#if !defined (__powerpc__) && !defined (__s390__) && !defined (__s390x__) -+asm (".hidden _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intB5cxx11IjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_"); -+asm (".hidden _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intB5cxx11IlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_"); -+asm (".hidden _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intB5cxx11ImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_"); -+asm (".hidden _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intB5cxx11ItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_"); -+asm (".hidden _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intB5cxx11IxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_"); -+asm (".hidden _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intB5cxx11IyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_"); -+#else -+//asm (".hidden _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intB5cxx11IjEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_"); -+//asm (".hidden _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intB5cxx11IlEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_"); -+//asm (".hidden _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intB5cxx11ImEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_"); -+//asm (".hidden _ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intB5cxx11ItEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_"); -+//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_"); ++#ifdef _GLIBCXX_USE_WCHAR_T ++#define C wchar_t ++#include "cxx11-locale-inst80.cc" +#endif -+#if defined(__i386__) || (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 -+asm (".hidden _ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC1ERKNSt7__cxx1112basic_stringIcS1_IcESaIcEEEm"); -+asm (".hidden _ZNSt15time_put_bynameIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC2ERKNSt7__cxx1112basic_stringIcS1_IcESaIcEEEm"); -+#endif -+asm (".hidden _ZSt16__convert_from_vRKP15__locale_structPciPKcz"); -+asm (".hidden _ZTISt10money_base"); -+asm (".hidden _ZTISt13messages_base"); -+asm (".hidden _ZTISt9time_base"); -+asm (".hidden _ZTSSt10money_base"); -+asm (".hidden _ZTSSt13messages_base"); -+asm (".hidden _ZTSSt9time_base"); ++asm (".hidden _ZNKSt19istreambuf_iteratorIwSt11char_traitsIwEE6_M_getEv"); diff --git a/libstdc++-v3/src/nonshared11/cxx11-wlocale-inst80.cc b/libstdc++-v3/src/nonshared11/cxx11-wlocale-inst80.cc new file mode 100644 -index 000000000..0353dbb93 +index 000000000..6af5461c8 --- /dev/null +++ b/libstdc++-v3/src/nonshared11/cxx11-wlocale-inst80.cc -@@ -0,0 +1,29 @@ -+// Copyright (C) 2022 Free Software Foundation, Inc. +@@ -0,0 +1,30 @@ ++// Copyright (C) 2022-2024 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 @@ -3939,6 +2478,7 @@ index 000000000..0353dbb93 +#define C wchar_t +#include "cxx11-locale-inst80.cc" +#endif ++asm (".hidden _ZNKSt19istreambuf_iteratorIwSt11char_traitsIwEE6_M_getEv"); diff --git a/libstdc++-v3/src/nonshared11/debug.cc b/libstdc++-v3/src/nonshared11/debug.cc new file mode 100644 index 000000000..a9fa99f8f @@ -4112,25 +2652,27 @@ index 000000000..364a72022 + +#define _GLIBCXX_NONSHARED_CXX11_110 +#include "debug.cc" -diff --git a/libstdc++-v3/src/nonshared11/del_opa.cc b/libstdc++-v3/src/nonshared11/del_opa.cc +diff --git a/libstdc++-v3/src/nonshared11/eh_ptr80.cc b/libstdc++-v3/src/nonshared11/eh_ptr80.cc new file mode 100644 -index 000000000..57f09aa14 +index 000000000..605d45d2b --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/del_opa.cc -@@ -0,0 +1,23 @@ -+// Copyright (C) 2017-2023 Free Software Foundation, Inc. ++++ b/libstdc++-v3/src/nonshared11/eh_ptr80.cc +@@ -0,0 +1,64 @@ ++// -*- C++ -*- Implement the members of exception_ptr. ++// Copyright (C) 2008-2024 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) ++// This file is part of GCC. ++// ++// GCC 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, ++// ++// GCC 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. -+ ++// +// Under Section 7 of GPL version 3, you are granted additional +// permissions described in the GCC Runtime Library Exception, version +// 3.1, as published by the Free Software Foundation. @@ -4140,43 +2682,53 @@ index 000000000..57f09aa14 +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+#include "../libsupc++/del_opa.cc" -diff --git a/libstdc++-v3/src/nonshared11/del_opant.cc b/libstdc++-v3/src/nonshared11/del_opant.cc -new file mode 100644 -index 000000000..02930dc8c ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/del_opant.cc -@@ -0,0 +1,23 @@ -+// Copyright (C) 2017-2023 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. ++#include ++#include "eh_atomics.h" + -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. ++#define _GLIBCXX_EH_PTR_COMPAT + -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . ++#include ++#include ++#include "unwind-cxx.h" ++ ++using namespace __cxxabiv1; ++ ++void ++std::__exception_ptr::exception_ptr::_M_addref() noexcept ++{ ++ if (__builtin_expect(_M_exception_object != nullptr, true)) ++ { ++ __cxa_refcounted_exception *eh = ++ __get_refcounted_exception_header_from_obj (_M_exception_object); ++ __gnu_cxx::__eh_atomic_inc (&eh->referenceCount); ++ } ++} ++ ++void ++std::__exception_ptr::exception_ptr::_M_release() noexcept ++{ ++ if (__builtin_expect(_M_exception_object != nullptr, true)) ++ { ++ __cxa_refcounted_exception *eh = ++ __get_refcounted_exception_header_from_obj (_M_exception_object); ++ if (__gnu_cxx::__eh_atomic_dec (&eh->referenceCount)) ++ { ++ if (eh->exc.exceptionDestructor) ++ eh->exc.exceptionDestructor (_M_exception_object); + -+#include "../libsupc++/del_opant.cc" -diff --git a/libstdc++-v3/src/nonshared11/del_ops.cc b/libstdc++-v3/src/nonshared11/del_ops.cc ++ __cxa_free_exception (_M_exception_object); ++ _M_exception_object = nullptr; ++ } ++ } ++} ++ +diff --git a/libstdc++-v3/src/nonshared11/functexcept80.cc b/libstdc++-v3/src/nonshared11/functexcept80.cc new file mode 100644 -index 000000000..cd30052d7 +index 000000000..c9e134e7d --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/del_ops.cc -@@ -0,0 +1,23 @@ -+// Copyright (C) 2013-2023 Free Software Foundation, Inc. ++++ b/libstdc++-v3/src/nonshared11/functexcept80.cc +@@ -0,0 +1,48 @@ ++// Copyright (C) 2001-2023 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 @@ -4198,14 +2750,39 @@ index 000000000..cd30052d7 +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+#include "../libsupc++/del_ops.cc" -diff --git a/libstdc++-v3/src/nonshared11/del_opsa.cc b/libstdc++-v3/src/nonshared11/del_opsa.cc ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#ifdef _GLIBCXX_USE_NLS ++# include ++# define _(msgid) gettext (msgid) ++#else ++# define _(msgid) (msgid) ++#endif ++ ++namespace std _GLIBCXX_VISIBILITY(default) ++{ ++_GLIBCXX_BEGIN_NAMESPACE_VERSION ++ ++ void ++ __throw_bad_array_new_length() ++ { _GLIBCXX_THROW_OR_ABORT(bad_array_new_length()); } ++ ++_GLIBCXX_END_NAMESPACE_VERSION ++} // namespace +diff --git a/libstdc++-v3/src/nonshared11/futex80.cc b/libstdc++-v3/src/nonshared11/futex80.cc new file mode 100644 -index 000000000..688b483de +index 000000000..927de9fa0 --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/del_opsa.cc -@@ -0,0 +1,23 @@ -+// Copyright (C) 2017-2023 Free Software Foundation, Inc. ++++ b/libstdc++-v3/src/nonshared11/futex80.cc +@@ -0,0 +1,24 @@ ++// Copyright (C) 2012-2023 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 @@ -4227,14 +2804,17 @@ index 000000000..688b483de +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+#include "../libsupc++/del_opsa.cc" -diff --git a/libstdc++-v3/src/nonshared11/del_opv.cc b/libstdc++-v3/src/nonshared11/del_opv.cc ++#define _GLIBCXX_NONSHARED_CXX11_80 ++#include "../c++11/futex.cc" +diff --git a/libstdc++-v3/src/nonshared11/istream-inst80.cc b/libstdc++-v3/src/nonshared11/istream-inst80.cc new file mode 100644 -index 000000000..242ecf90e +index 000000000..1fec5f32f --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/del_opv.cc -@@ -0,0 +1,23 @@ -+// Copyright (C) 2013-2023 Free Software Foundation, Inc. ++++ b/libstdc++-v3/src/nonshared11/istream-inst80.cc +@@ -0,0 +1,121 @@ ++// Explicit instantiation file. ++ ++// Copyright (C) 1997-2024 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 @@ -4256,43 +2836,110 @@ index 000000000..242ecf90e +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+#include "../libsupc++/del_opv.cc" -diff --git a/libstdc++-v3/src/nonshared11/del_opva.cc b/libstdc++-v3/src/nonshared11/del_opva.cc -new file mode 100644 -index 000000000..2b6820590 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/del_opva.cc -@@ -0,0 +1,23 @@ -+// Copyright (C) 2017-2023 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. ++// ISO C++ 14882: ++// + -+// 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. ++#include ++#include + -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. ++namespace std _GLIBCXX_VISIBILITY(default) ++{ ++_GLIBCXX_BEGIN_NAMESPACE_VERSION + -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . ++#ifdef _GLIBCXX_USE_WCHAR_T ++ template void __istream_extract(wistream&, wchar_t*, streamsize); ++#endif ++ ++ void ++ __istream_extract(istream& __in, char* __s, streamsize __num) ++ { ++ typedef basic_istream __istream_type; ++ typedef __istream_type::int_type __int_type; ++ typedef __istream_type::char_type __char_type; ++ typedef __istream_type::traits_type __traits_type; ++ typedef __istream_type::__streambuf_type __streambuf_type; ++ typedef __istream_type::__ctype_type __ctype_type; ++ ++ streamsize __extracted = 0; ++ ios_base::iostate __err = ios_base::goodbit; ++ __istream_type::sentry __cerb(__in, false); ++ if (__cerb) ++ { ++ __try ++ { ++ // Figure out how many characters to extract. ++ streamsize __width = __in.width(); ++ if (0 < __width && __width < __num) ++ __num = __width; ++ ++ const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); ++ ++ const __int_type __eof = __traits_type::eof(); ++ __streambuf_type* __sb = __in.rdbuf(); ++ __int_type __c = __sb->sgetc(); ++ ++ while (__extracted < __num - 1 ++ && !__traits_type::eq_int_type(__c, __eof) ++ && !__ct.is(ctype_base::space, ++ __traits_type::to_char_type(__c))) ++ { ++ streamsize __size = std::min(streamsize(__sb->egptr() ++ - __sb->gptr()), ++ streamsize(__num - __extracted ++ - 1)); ++ if (__size > 1) ++ { ++ __size = (__ct.scan_is(ctype_base::space, ++ __sb->gptr() + 1, ++ __sb->gptr() + __size) ++ - __sb->gptr()); ++ __traits_type::copy(__s, __sb->gptr(), __size); ++ __s += __size; ++ __sb->__safe_gbump(__size); ++ __extracted += __size; ++ __c = __sb->sgetc(); ++ } ++ else ++ { ++ *__s++ = __traits_type::to_char_type(__c); ++ ++__extracted; ++ __c = __sb->snextc(); ++ } ++ } ++ ++ if (__extracted < __num - 1 ++ && __traits_type::eq_int_type(__c, __eof)) ++ __err |= ios_base::eofbit; ++ ++ // _GLIBCXX_RESOLVE_LIB_DEFECTS ++ // 68. Extractors for char* should store null at end ++ *__s = __char_type(); ++ __in.width(0); ++ } ++ __catch(__cxxabiv1::__forced_unwind&) ++ { ++ __in._M_setstate(ios_base::badbit); ++ __throw_exception_again; ++ } ++ __catch(...) ++ { __in._M_setstate(ios_base::badbit); } ++ } ++ if (!__extracted) ++ __err |= ios_base::failbit; ++ if (__err) ++ __in.setstate(__err); ++ } + -+#include "../libsupc++/del_opva.cc" -diff --git a/libstdc++-v3/src/nonshared11/del_opvant.cc b/libstdc++-v3/src/nonshared11/del_opvant.cc ++_GLIBCXX_END_NAMESPACE_VERSION ++} // namespace +diff --git a/libstdc++-v3/src/nonshared11/limits.cc b/libstdc++-v3/src/nonshared11/limits.cc new file mode 100644 -index 000000000..082c50579 +index 000000000..1af5a5e73 --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/del_opvant.cc -@@ -0,0 +1,23 @@ -+// Copyright (C) 2017-2023 Free Software Foundation, Inc. ++++ b/libstdc++-v3/src/nonshared11/limits.cc +@@ -0,0 +1,57 @@ ++// Copyright (C) 2019-2023 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 @@ -4314,14 +2961,48 @@ index 000000000..082c50579 +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+#include "../libsupc++/del_opvant.cc" -diff --git a/libstdc++-v3/src/nonshared11/del_opvnt.cc b/libstdc++-v3/src/nonshared11/del_opvnt.cc ++#include ++ ++namespace std _GLIBCXX_VISIBILITY(default) ++{ ++ ++#define const _GLIBCXX_USE_CONSTEXPR ++ ++#ifdef _GLIBCXX_USE_CHAR8_T ++ // char8_t ++ const bool numeric_limits::is_specialized; ++ const int numeric_limits::digits; ++ const int numeric_limits::digits10; ++// const int numeric_limits::max_digits10; ++ const bool numeric_limits::is_signed; ++ const bool numeric_limits::is_integer; ++ const bool numeric_limits::is_exact; ++ const int numeric_limits::radix; ++ const int numeric_limits::min_exponent; ++ const int numeric_limits::min_exponent10; ++ const int numeric_limits::max_exponent; ++ const int numeric_limits::max_exponent10; ++ const bool numeric_limits::has_infinity; ++ const bool numeric_limits::has_quiet_NaN; ++ const bool numeric_limits::has_signaling_NaN; ++ const float_denorm_style numeric_limits::has_denorm; ++ const bool numeric_limits::has_denorm_loss; ++ const bool numeric_limits::is_iec559; ++ const bool numeric_limits::is_bounded; ++ const bool numeric_limits::is_modulo; ++ const bool numeric_limits::traps; ++ const bool numeric_limits::tinyness_before; ++ const float_round_style numeric_limits::round_style; ++#endif // _GLIBCXX_USE_CHAR8_T ++ ++} +diff --git a/libstdc++-v3/src/nonshared11/locale-inst110.cc b/libstdc++-v3/src/nonshared11/locale-inst110.cc new file mode 100644 -index 000000000..c989d4c97 +index 000000000..5369ad6e1 --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/del_opvnt.cc -@@ -0,0 +1,23 @@ -+// Copyright (C) 2013-2023 Free Software Foundation, Inc. ++++ b/libstdc++-v3/src/nonshared11/locale-inst110.cc +@@ -0,0 +1,24 @@ ++// Copyright (C) 1999-2024 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 @@ -4343,14 +3024,17 @@ index 000000000..c989d4c97 +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+#include "../libsupc++/del_opvnt.cc" -diff --git a/libstdc++-v3/src/nonshared11/del_opvs.cc b/libstdc++-v3/src/nonshared11/del_opvs.cc ++#define _GLIBCXX_NONSHARED_CXX11_110 ++#include "locale-inst80.cc" +diff --git a/libstdc++-v3/src/nonshared11/locale-inst80.cc b/libstdc++-v3/src/nonshared11/locale-inst80.cc new file mode 100644 -index 000000000..77c09eb06 +index 000000000..285ebde40 --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/del_opvs.cc -@@ -0,0 +1,23 @@ -+// Copyright (C) 2013-2023 Free Software Foundation, Inc. ++++ b/libstdc++-v3/src/nonshared11/locale-inst80.cc +@@ -0,0 +1,99 @@ ++// Locale support -*- C++ -*- ++ ++// Copyright (C) 1999-2024 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 @@ -4372,21 +3056,96 @@ index 000000000..77c09eb06 +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+#include "../libsupc++/del_opvs.cc" -diff --git a/libstdc++-v3/src/nonshared11/del_opvsa.cc b/libstdc++-v3/src/nonshared11/del_opvsa.cc -new file mode 100644 -index 000000000..235a5480e ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/del_opvsa.cc -@@ -0,0 +1,23 @@ -+// Copyright (C) 2017-2023 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. -+ ++// ISO C++ 14882: 22.1 Locales ++// ++ ++#ifndef _GLIBCXX_USE_CXX11_ABI ++// Instantiations in this file use the old COW std::string ABI unless included ++// by another file which defines _GLIBCXX_USE_CXX11_ABI=1. Some instantiations ++// are guarded by a check for !_GLIBCXX_USE_CXX11_ABI so that they are only ++// instantiated once, because they are not tagged with abi_tag so should not ++// be instantiated twice. ++# define _GLIBCXX_USE_CXX11_ABI 0 ++#endif ++ ++#include ++ ++// Instantiation configuration. ++#ifndef C ++# define C char ++# define C_is_char ++#endif ++ ++#define INSTANTIATE_USE_FACET(...) \ ++ template const __VA_ARGS__* \ ++ __try_use_facet< __VA_ARGS__ >(const locale&) noexcept ++ ++#define INSTANTIATE_FACET_ACCESSORS(...) \ ++ INSTANTIATE_USE_FACET(__VA_ARGS__) ++ ++namespace std _GLIBCXX_VISIBILITY(default) ++{ ++_GLIBCXX_BEGIN_NAMESPACE_VERSION ++ ++#ifndef _GLIBCXX_NONSHARED_CXX11_110 ++ template time_get>::iter_type time_get>::get(iter_type, iter_type, ios_base&, ios_base::iostate&, tm*, char, char) const; ++ template collate_byname::collate_byname(const string&, size_t); ++#endif ++ template time_get>::iter_type time_get>::_M_extract_via_format(iter_type, iter_type, ios_base&, ios_base::iostate&, tm*, const C*, __time_get_state&) const; ++ template void __timepunct::_M_am_pm_format(C const**) const; ++ ++#if ! _GLIBCXX_USE_CXX11_ABI ++INSTANTIATE_FACET_ACCESSORS(ctype); ++INSTANTIATE_FACET_ACCESSORS(codecvt); ++#endif ++INSTANTIATE_FACET_ACCESSORS(collate); ++INSTANTIATE_FACET_ACCESSORS(numpunct); ++INSTANTIATE_FACET_ACCESSORS(moneypunct); ++INSTANTIATE_USE_FACET (moneypunct); ++#if ! _GLIBCXX_USE_CXX11_ABI ++INSTANTIATE_FACET_ACCESSORS(__timepunct); ++INSTANTIATE_FACET_ACCESSORS(time_put); ++#endif ++INSTANTIATE_FACET_ACCESSORS(time_get); ++INSTANTIATE_FACET_ACCESSORS(messages); ++ ++INSTANTIATE_FACET_ACCESSORS(money_put); ++INSTANTIATE_FACET_ACCESSORS(money_get); ++ ++#if ! _GLIBCXX_USE_CXX11_ABI ++INSTANTIATE_FACET_ACCESSORS(num_get); ++INSTANTIATE_FACET_ACCESSORS(num_put); ++#endif ++ ++_GLIBCXX_END_NAMESPACE_VERSION ++} // namespace ++ ++#ifdef C_is_char ++asm (".hidden _ZNKSt5ctypeIcE8do_widenEc"); ++#endif ++#ifndef _GLIBCXX_NONSHARED_CXX11_110 ++#ifdef C_is_char ++asm (".hidden _ZNKSt5ctypeIcE9do_narrowEcc"); ++asm (".hidden _ZNKSt5ctypeIcE8do_widenEPKcS2_Pc"); ++asm (".hidden _ZNKSt19istreambuf_iteratorIcSt11char_traitsIcEE6_M_getEv"); ++#endif ++#endif +\ No newline at end of file +diff --git a/libstdc++-v3/src/nonshared11/shared_ptr80.cc b/libstdc++-v3/src/nonshared11/shared_ptr80.cc +new file mode 100644 +index 000000000..d5b0c4d1e +--- /dev/null ++++ b/libstdc++-v3/src/nonshared11/shared_ptr80.cc +@@ -0,0 +1,25 @@ ++// Copyright (C) 2012-2023 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 @@ -4401,72 +3160,91 @@ index 000000000..235a5480e +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+#include "../libsupc++/del_opvsa.cc" -diff --git a/libstdc++-v3/src/nonshared11/eh_aux_runtime.cc b/libstdc++-v3/src/nonshared11/eh_aux_runtime.cc ++#define _GLIBCXX_NONSHARED_CXX11_80 ++#include "../c++11/shared_ptr.cc" ++//asm (".hidden _ZTSSt19_Sp_make_shared_tag"); +diff --git a/libstdc++-v3/src/nonshared11/sstream-inst80.cc b/libstdc++-v3/src/nonshared11/sstream-inst80.cc new file mode 100644 -index 000000000..98868a8f9 +index 000000000..574f86d59 --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/eh_aux_runtime.cc -@@ -0,0 +1,38 @@ -+// -*- C++ -*- Common throw conditions. -+// Copyright (C) 1994-2023 Free Software Foundation, Inc. -+// -+// This file is part of GCC. ++++ b/libstdc++-v3/src/nonshared11/sstream-inst80.cc +@@ -0,0 +1,55 @@ ++// Explicit instantiation file. ++ ++// Copyright (C) 2014-2023 Free Software Foundation, Inc. +// -+// GCC 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) ++// 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. -+// -+// GCC is distributed in the hope that it will be useful, ++ ++// 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. -+// ++ +// Under Section 7 of GPL version 3, you are granted additional +// permissions described in the GCC Runtime Library Exception, version +// 3.1, as published by the Free Software Foundation. -+// ++ +// You should have received a copy of the GNU General Public License and +// a copy of the GCC Runtime Library Exception along with this program; +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+#include "typeinfo" -+#include "exception" -+#include "new" -+#include -+#include "unwind-cxx.h" -+#include ++// ++// ISO C++ 14882: ++// ++ ++#define _GLIBCXX_USE_CXX11_ABI 1 ++#include ++ ++namespace std _GLIBCXX_VISIBILITY(default) ++{ ++_GLIBCXX_BEGIN_NAMESPACE_VERSION + -+extern "C" void -+__cxxabiv1::__cxa_throw_bad_array_new_length () -+{ _GLIBCXX_THROW_OR_ABORT(std::bad_array_new_length()); } ++ template basic_stringbuf::basic_stringbuf(); ++ template basic_istringstream::basic_istringstream(); ++ template basic_ostringstream::basic_ostringstream(); ++ template basic_stringstream::basic_stringstream(); ++#ifdef _GLIBCXX_USE_WCHAR_T ++ template basic_stringbuf::basic_stringbuf(); ++ template basic_istringstream::basic_istringstream(); ++ template basic_ostringstream::basic_ostringstream(); ++ template basic_stringstream::basic_stringstream(); ++#endif ++ ++_GLIBCXX_END_NAMESPACE_VERSION ++} // namespace + -+//extern "C" void -+//__cxxabiv1::__cxa_throw_bad_array_length () -+//{ _GLIBCXX_THROW_OR_ABORT(std::bad_array_length()); } -diff --git a/libstdc++-v3/src/nonshared11/eh_ptr.cc b/libstdc++-v3/src/nonshared11/eh_ptr.cc ++asm (".hidden _ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED0Ev"); ++asm (".hidden _ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED1Ev"); ++asm (".hidden _ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED2Ev"); ++asm (".hidden _ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEED0Ev"); ++asm (".hidden _ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEED1Ev"); ++asm (".hidden _ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEED2Ev"); +diff --git a/libstdc++-v3/src/nonshared11/streambuf-inst.cc b/libstdc++-v3/src/nonshared11/streambuf-inst.cc new file mode 100644 -index 000000000..51388e3fb +index 000000000..ea5f89a13 --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/eh_ptr.cc -@@ -0,0 +1,81 @@ -+// -*- C++ -*- Implement the members of exception_ptr. -+// Copyright (C) 2008-2023 Free Software Foundation, Inc. -+// -+// This file is part of GCC. ++++ b/libstdc++-v3/src/nonshared11/streambuf-inst.cc +@@ -0,0 +1,42 @@ ++// Explicit instantiation file. ++ ++// Copyright (C) 1997-2023 Free Software Foundation, Inc. +// -+// GCC 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) ++// 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. -+// -+// GCC is distributed in the hope that it will be useful, ++ ++// 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. -+// ++ +// Under Section 7 of GPL version 3, you are granted additional +// permissions described in the GCC Runtime Library Exception, version +// 3.1, as published by the Free Software Foundation. @@ -4476,84 +3254,45 @@ index 000000000..51388e3fb +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+#include -+#include "eh_atomics.h" -+ -+#define _GLIBCXX_EH_PTR_COMPAT -+ -+#include -+#include -+#include "unwind-cxx.h" -+ -+using namespace __cxxabiv1; -+ -+#ifndef _GLIBCXX_NONSHARED_CXX11_80 -+std::__exception_ptr::exception_ptr::exception_ptr(void* obj) noexcept -+: _M_exception_object(obj) -+{ -+ if (_M_exception_object) -+ { -+ __cxa_refcounted_exception *eh = -+ __get_refcounted_exception_header_from_obj (_M_exception_object); -+ __gnu_cxx::__eh_atomic_inc (&eh->referenceCount); -+ } -+} -+#endif ++// ++// ISO C++ 14882: ++// + -+void -+std::__exception_ptr::exception_ptr::_M_addref() noexcept -+{ -+ if (__builtin_expect(_M_exception_object != nullptr, true)) -+ { -+ __cxa_refcounted_exception *eh = -+ __get_refcounted_exception_header_from_obj (_M_exception_object); -+ __gnu_cxx::__eh_atomic_inc (&eh->referenceCount); -+ } -+} ++#include + -+void -+std::__exception_ptr::exception_ptr::_M_release() noexcept ++namespace std _GLIBCXX_VISIBILITY(default) +{ -+ if (__builtin_expect(_M_exception_object != nullptr, true)) -+ { -+ __cxa_refcounted_exception *eh = -+ __get_refcounted_exception_header_from_obj (_M_exception_object); -+ if (__gnu_cxx::__eh_atomic_dec (&eh->referenceCount)) -+ { -+ if (eh->exc.exceptionDestructor) -+ eh->exc.exceptionDestructor (_M_exception_object); ++_GLIBCXX_BEGIN_NAMESPACE_VERSION + -+ __cxa_free_exception (_M_exception_object); -+ _M_exception_object = nullptr; -+ } -+ } -+} ++ template void basic_streambuf::swap(basic_streambuf&); + -+#ifndef _GLIBCXX_NONSHARED_CXX11_80 -+asm (".hidden _ZNSt15__exception_ptr13exception_ptrC2EPv"); ++#ifdef _GLIBCXX_USE_WCHAR_T ++ template void basic_streambuf::swap(basic_streambuf&); +#endif + -diff --git a/libstdc++-v3/src/nonshared11/eh_ptr80.cc b/libstdc++-v3/src/nonshared11/eh_ptr80.cc ++_GLIBCXX_END_NAMESPACE_VERSION ++} // namespace +diff --git a/libstdc++-v3/src/nonshared11/string-inst110.cc b/libstdc++-v3/src/nonshared11/string-inst110.cc new file mode 100644 -index 000000000..88e5624e6 +index 000000000..6b5365bb4 --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/eh_ptr80.cc ++++ b/libstdc++-v3/src/nonshared11/string-inst110.cc @@ -0,0 +1,26 @@ -+// -*- C++ -*- Implement the members of exception_ptr. -+// Copyright (C) 2008-2023 Free Software Foundation, Inc. -+// -+// This file is part of GCC. ++// Components for manipulating sequences of characters -*- C++ -*- ++ ++// Copyright (C) 1997-2023 Free Software Foundation, Inc. +// -+// GCC 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) ++// 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. -+// -+// GCC is distributed in the hope that it will be useful, ++ ++// 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. -+// ++ +// Under Section 7 of GPL version 3, you are granted additional +// permissions described in the GCC Runtime Library Exception, version +// 3.1, as published by the Free Software Foundation. @@ -4563,30 +3302,29 @@ index 000000000..88e5624e6 +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+#define _GLIBCXX_NONSHARED_CXX11_80 -+#include "eh_ptr.cc" -diff --git a/libstdc++-v3/src/nonshared11/eh_terminate.cc b/libstdc++-v3/src/nonshared11/eh_terminate.cc -new file mode 100644 -index 000000000..294697dd2 ++#define _GLIBCXX_NONSHARED_CXX11_110 ++#include "string-inst80.cc" +diff --git a/libstdc++-v3/src/nonshared11/string-inst80.cc b/libstdc++-v3/src/nonshared11/string-inst80.cc +new file mode 100644 +index 000000000..e6c5a4a4f --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/eh_terminate.cc -@@ -0,0 +1,91 @@ -+// Implementation file for the -*- C++ -*- dynamic memory management header. ++++ b/libstdc++-v3/src/nonshared11/string-inst80.cc +@@ -0,0 +1,68 @@ ++// Components for manipulating sequences of characters -*- C++ -*- + -+// Copyright (C) 1994-2023 Free Software Foundation, Inc. -+// -+// This file is part of GCC. ++// Copyright (C) 1997-2024 Free Software Foundation, Inc. +// -+// GCC 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) ++// 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. -+// -+// GCC is distributed in the hope that it will be useful, ++ ++// 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. -+// ++ +// Under Section 7 of GPL version 3, you are granted additional +// permissions described in the GCC Runtime Library Exception, version +// 3.1, as published by the Free Software Foundation. @@ -4596,163 +3334,57 @@ index 000000000..294697dd2 +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+#include -+#include ++// ++// ISO C++ 14882: 21 Strings library ++// + -+// This is inherently thread-unsafe, but so is libstdc++ < 4.9 -+// std::set_terminate and std::set_unexpected and this hopefully -+// doesn't make things much worse than that. -+namespace -+{ -+ __gnu_cxx::__mutex mx; -+ std::terminate_handler thandler; -+ std::unexpected_handler uhandler; ++// Written by Jason Merrill based upon the specification by Takanori Adachi ++// in ANSI X3J16/94-0013R2. Rewritten by Nathan Myers. + -+ void terminate_handler_wrapper () -+ { -+ std::terminate_handler h; -+ { -+ __gnu_cxx::__scoped_lock l(mx); -+ h = thandler; -+ } -+ h (); -+ } ++#ifndef _GLIBCXX_USE_CXX11_ABI ++// Instantiations in this file use the new SSO std::string ABI unless included ++// by another file which defines _GLIBCXX_USE_CXX11_ABI=0. ++# define _GLIBCXX_USE_CXX11_ABI 1 ++#endif + -+ void unexpected_handler_wrapper () -+ { -+ std::terminate_handler h; -+ { -+ __gnu_cxx::__scoped_lock l(mx); -+ h = uhandler; -+ } -+ h (); -+ } -+} ++#include + -+std::terminate_handler -+std::get_terminate () noexcept -+{ -+ __gnu_cxx::__scoped_lock l(mx); -+ thandler = std::set_terminate (terminate_handler_wrapper); -+ std::set_terminate (thandler); -+ return thandler; -+} ++// Instantiation configuration. ++#ifndef C ++# define C char ++#endif + -+std::unexpected_handler -+std::get_unexpected () noexcept ++namespace std _GLIBCXX_VISIBILITY(default) +{ -+ __gnu_cxx::__scoped_lock l(mx); -+ uhandler = std::set_unexpected (unexpected_handler_wrapper); -+ std::set_unexpected (uhandler); -+ return uhandler; -+} -+ -+asm (".hidden _ZN9__gnu_cxx24__concurrence_lock_errorD0Ev"); -+asm (".hidden _ZN9__gnu_cxx24__concurrence_lock_errorD1Ev"); -+asm (".hidden _ZN9__gnu_cxx24__concurrence_lock_errorD2Ev"); -+asm (".hidden _ZN9__gnu_cxx26__concurrence_unlock_errorD0Ev"); -+asm (".hidden _ZN9__gnu_cxx26__concurrence_unlock_errorD1Ev"); -+asm (".hidden _ZN9__gnu_cxx26__concurrence_unlock_errorD2Ev"); -+asm (".hidden _ZN9__gnu_cxx30__throw_concurrence_lock_errorEv"); -+asm (".hidden _ZNK9__gnu_cxx24__concurrence_lock_error4whatEv"); -+asm (".hidden _ZNK9__gnu_cxx26__concurrence_unlock_error4whatEv"); -+asm (".hidden _ZTIN9__gnu_cxx24__concurrence_lock_errorE"); -+asm (".hidden _ZTIN9__gnu_cxx26__concurrence_unlock_errorE"); -+asm (".hidden _ZTSN9__gnu_cxx24__concurrence_lock_errorE"); -+asm (".hidden _ZTSN9__gnu_cxx26__concurrence_unlock_errorE"); -+asm (".hidden _ZTVN9__gnu_cxx24__concurrence_lock_errorE"); -+asm (".hidden _ZTVN9__gnu_cxx26__concurrence_unlock_errorE"); -diff --git a/libstdc++-v3/src/nonshared11/eh_throw.cc b/libstdc++-v3/src/nonshared11/eh_throw.cc -new file mode 100644 -index 000000000..03da0d641 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/eh_throw.cc -@@ -0,0 +1,78 @@ -+// -*- C++ -*- Exception handling routines for throwing. -+// Copyright (C) 2001-2023 Free Software Foundation, Inc. -+// -+// This file is part of GCC. -+// -+// GCC 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. -+// -+// GCC 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. -+// -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include -+#include "unwind-cxx.h" -+#include "eh_atomics.h" ++_GLIBCXX_BEGIN_NAMESPACE_VERSION + -+using namespace __cxxabiv1; ++ typedef basic_string S; + ++#ifndef _GLIBCXX_NONSHARED_CXX11_110 ++ template ++ S::iterator ++ S::insert(S::const_iterator, initializer_list); + -+static void -+__gxx_exception_cleanup (_Unwind_Reason_Code code, _Unwind_Exception *exc) -+{ -+ // This cleanup is set only for primaries. -+ __cxa_refcounted_exception *header -+ = __get_refcounted_exception_header_from_ue (exc); -+ -+ // We only want to be called through _Unwind_DeleteException. -+ // _Unwind_DeleteException in the HP-UX IA64 libunwind library -+ // returns _URC_NO_REASON and not _URC_FOREIGN_EXCEPTION_CAUGHT -+ // like the GCC _Unwind_DeleteException function does. -+ if (code != _URC_FOREIGN_EXCEPTION_CAUGHT && code != _URC_NO_REASON) -+ { -+ __try -+ { -+ header->exc.terminateHandler (); -+ __builtin_abort (); -+ } -+ __catch(...) -+ { __builtin_abort (); } -+ } ++ template ++ void S::reserve(); ++#endif + -+ if (__gnu_cxx::__eh_atomic_dec (&header->referenceCount)) -+ { -+ if (header->exc.exceptionDestructor) -+ header->exc.exceptionDestructor (header + 1); ++ template ++ void S::_M_replace_cold(S::pointer, size_type, const C*, const size_type, ++ const size_type); + -+ __cxa_free_exception (header + 1); -+ } -+} ++ template ++ S::pointer S::_S_allocate(S::allocator_type &, size_type); + -+extern "C" __cxa_refcounted_exception* -+__cxxabiv1::__cxa_init_primary_exception(void *obj, std::type_info *tinfo, -+ void (_GLIBCXX_CDTOR_CALLABI *dest) (void *)) -+{ -+ __cxa_refcounted_exception *header -+ = __get_refcounted_exception_header_from_obj (obj); -+ header->referenceCount = 0; -+ header->exc.exceptionType = tinfo; -+ header->exc.exceptionDestructor = dest; -+ header->exc.unexpectedHandler = std::get_unexpected (); -+ header->exc.terminateHandler = std::get_terminate (); -+ __GXX_INIT_PRIMARY_EXCEPTION_CLASS(header->exc.unwindHeader.exception_class); -+ header->exc.unwindHeader.exception_cleanup = __gxx_exception_cleanup; -+ -+ return header; -+} -diff --git a/libstdc++-v3/src/nonshared11/ext11-inst.cc b/libstdc++-v3/src/nonshared11/ext11-inst.cc ++_GLIBCXX_END_NAMESPACE_VERSION ++} // namespace +diff --git a/libstdc++-v3/src/nonshared11/wlocale-inst110.cc b/libstdc++-v3/src/nonshared11/wlocale-inst110.cc new file mode 100644 -index 000000000..aed1f1d56 +index 000000000..1cc4b325a --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/ext11-inst.cc -@@ -0,0 +1,38 @@ -+// Copyright (C) 2012-2023 Free Software Foundation, Inc. ++++ b/libstdc++-v3/src/nonshared11/wlocale-inst110.cc +@@ -0,0 +1,32 @@ ++// Copyright (C) 1999-2024 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 @@ -4774,31 +3406,23 @@ index 000000000..aed1f1d56 +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+#include -+#include -+ -+namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) -+{ -+_GLIBCXX_BEGIN_NAMESPACE_VERSION ++// Instantiate locales using COW std::wstring ABI ++#define _GLIBCXX_USE_CXX11_ABI 0 ++#include + -+ template stdio_sync_filebuf::stdio_sync_filebuf(stdio_sync_filebuf&&) noexcept; -+ template stdio_sync_filebuf& stdio_sync_filebuf::operator=(stdio_sync_filebuf&&) noexcept; +#ifdef _GLIBCXX_USE_WCHAR_T -+ template stdio_sync_filebuf::stdio_sync_filebuf(stdio_sync_filebuf&&) noexcept; -+ template stdio_sync_filebuf& stdio_sync_filebuf::operator=(stdio_sync_filebuf&&) noexcept; ++#define C wchar_t ++#define _GLIBCXX_NONSHARED_CXX11_110 ++#include "locale-inst80.cc" +#endif -+ -+_GLIBCXX_END_NAMESPACE_VERSION -+} // namespace -diff --git a/libstdc++-v3/src/nonshared11/fstream-inst.cc b/libstdc++-v3/src/nonshared11/fstream-inst.cc ++asm (".hidden _ZNKSt19istreambuf_iteratorIwSt11char_traitsIwEE6_M_getEv"); +diff --git a/libstdc++-v3/src/nonshared11/wlocale-inst80.cc b/libstdc++-v3/src/nonshared11/wlocale-inst80.cc new file mode 100644 -index 000000000..2fd4a7f1c +index 000000000..c466ab4e1 --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/fstream-inst.cc -@@ -0,0 +1,79 @@ -+// Explicit instantiation file. -+ -+// Copyright (C) 1997-2023 Free Software Foundation, Inc. ++++ b/libstdc++-v3/src/nonshared11/wlocale-inst80.cc +@@ -0,0 +1,31 @@ ++// Copyright (C) 1999-2024 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 @@ -4820,68 +3444,24 @@ index 000000000..2fd4a7f1c +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+// -+// ISO C++ 14882: -+// -+ -+#define _GLIBCXX_USE_CXX11_ABI 1 -+#include -+ -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+_GLIBCXX_BEGIN_NAMESPACE_VERSION -+ -+ template basic_filebuf>::basic_filebuf(basic_filebuf&&); -+ template basic_filebuf>& basic_filebuf>::operator=(basic_filebuf&&); -+ template void basic_filebuf>::swap(basic_filebuf&); -+ template basic_filebuf>::__filebuf_type* basic_filebuf>::open(const std::string &, ios_base::openmode); -+ template basic_ifstream::basic_ifstream(basic_ifstream&&); -+ template basic_ifstream& basic_ifstream::operator=(basic_ifstream&&); -+ template void basic_ifstream::swap(basic_ifstream&); -+ template void basic_ifstream::open(const std::string &, ios_base::openmode); -+ template basic_ifstream::basic_ifstream(const std::string &, ios_base::openmode); -+ template basic_ofstream::basic_ofstream(basic_ofstream&&); -+ template basic_ofstream& basic_ofstream::operator=(basic_ofstream&&); -+ template void basic_ofstream::swap(basic_ofstream&); -+ template void basic_ofstream::open(const std::string &, ios_base::openmode); -+ template basic_ofstream::basic_ofstream(const std::string &, ios_base::openmode); -+ template basic_fstream::basic_fstream(basic_fstream&&); -+ template basic_fstream& basic_fstream::operator=(basic_fstream&&); -+ template void basic_fstream::swap(basic_fstream&); -+ template void basic_fstream::open(const std::string &, ios_base::openmode); -+ template basic_fstream::basic_fstream(const std::string &, ios_base::openmode); ++// Instantiate locales using COW std::wstring ABI ++#define _GLIBCXX_USE_CXX11_ABI 0 ++#include + +#ifdef _GLIBCXX_USE_WCHAR_T -+ template basic_filebuf>::basic_filebuf(basic_filebuf&&); -+ template basic_filebuf>& basic_filebuf>::operator=(basic_filebuf&&); -+ template void basic_filebuf>::swap(basic_filebuf&); -+ template basic_filebuf>::__filebuf_type* basic_filebuf>::open(const std::string &, ios_base::openmode); -+ template basic_ifstream::basic_ifstream(basic_ifstream&&); -+ template basic_ifstream& basic_ifstream::operator=(basic_ifstream&&); -+ template void basic_ifstream::swap(basic_ifstream&); -+ template void basic_ifstream::open(const std::string &, ios_base::openmode); -+ template basic_ifstream::basic_ifstream(const std::string &, ios_base::openmode); -+ template basic_ofstream::basic_ofstream(basic_ofstream&&); -+ template basic_ofstream& basic_ofstream::operator=(basic_ofstream&&); -+ template void basic_ofstream::swap(basic_ofstream&); -+ template void basic_ofstream::open(const std::string &, ios_base::openmode); -+ template basic_ofstream::basic_ofstream(const std::string &, ios_base::openmode); -+ template basic_fstream::basic_fstream(basic_fstream&&); -+ template basic_fstream& basic_fstream::operator=(basic_fstream&&); -+ template void basic_fstream::swap(basic_fstream&); -+ template void basic_fstream::open(const std::string &, ios_base::openmode); -+ template basic_fstream::basic_fstream(const std::string &, ios_base::openmode); ++#define C wchar_t ++#include "locale-inst80.cc" +#endif -+ -+_GLIBCXX_END_NAMESPACE_VERSION -+} // namespace -diff --git a/libstdc++-v3/src/nonshared11/functexcept48.cc b/libstdc++-v3/src/nonshared11/functexcept48.cc ++asm (".hidden _ZNKSt19istreambuf_iteratorIwSt11char_traitsIwEE6_M_getEv"); +diff --git a/libstdc++-v3/src/nonshared11/wstring-inst110.cc b/libstdc++-v3/src/nonshared11/wstring-inst110.cc new file mode 100644 -index 000000000..487116d01 +index 000000000..8c2797167 --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/functexcept48.cc -@@ -0,0 +1,70 @@ -+// Copyright (C) 2001-2023 Free Software Foundation, Inc. ++++ b/libstdc++-v3/src/nonshared11/wstring-inst110.cc +@@ -0,0 +1,26 @@ ++// Components for manipulating sequences of characters -*- C++ -*- ++ ++// Copyright (C) 1997-2023 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 @@ -4903,61 +3483,15 @@ index 000000000..487116d01 +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#ifdef _GLIBCXX_USE_NLS -+# include -+# define _(msgid) gettext (msgid) -+#else -+# define _(msgid) (msgid) -+#endif -+ -+namespace __gnu_cxx -+{ -+ int __snprintf_lite(char *__buf, size_t __bufsize, const char *__fmt, -+ va_list __ap); -+} -+ -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+_GLIBCXX_BEGIN_NAMESPACE_VERSION -+ -+ void -+ __throw_out_of_range_fmt(const char* __fmt, ...) -+ { -+ const size_t __len = __builtin_strlen(__fmt); -+ // We expect at most 2 numbers, and 1 short string. The additional -+ // 512 bytes should provide more than enough space for expansion. -+ const size_t __alloca_size = __len + 512; -+ char *const __s = static_cast(__builtin_alloca(__alloca_size)); -+ va_list __ap; -+ -+ va_start(__ap, __fmt); -+ __gnu_cxx::__snprintf_lite(__s, __alloca_size, __fmt, __ap); -+ _GLIBCXX_THROW_OR_ABORT(out_of_range(_(__s))); -+ va_end(__ap); // Not reached. -+ } -+ -+ void -+ __throw_bad_array_new_length() -+ { _GLIBCXX_THROW_OR_ABORT(bad_array_new_length()); } -+ -+_GLIBCXX_END_NAMESPACE_VERSION -+} // namespace -diff --git a/libstdc++-v3/src/nonshared11/functexcept80.cc b/libstdc++-v3/src/nonshared11/functexcept80.cc ++#define _GLIBCXX_NONSHARED_CXX11_110 ++#include "wstring-inst80.cc" +diff --git a/libstdc++-v3/src/nonshared11/wstring-inst80.cc b/libstdc++-v3/src/nonshared11/wstring-inst80.cc new file mode 100644 -index 000000000..c9e134e7d +index 000000000..163259625 --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/functexcept80.cc -@@ -0,0 +1,48 @@ -+// Copyright (C) 2001-2023 Free Software Foundation, Inc. ++++ b/libstdc++-v3/src/nonshared11/wstring-inst80.cc +@@ -0,0 +1,29 @@ ++// Copyright (C) 1999-2023 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 @@ -4979,2385 +3513,186 @@ index 000000000..c9e134e7d +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include ++#define _GLIBCXX_USE_CXX11_ABI 1 ++#include + -+#ifdef _GLIBCXX_USE_NLS -+# include -+# define _(msgid) gettext (msgid) -+#else -+# define _(msgid) (msgid) ++#ifdef _GLIBCXX_USE_WCHAR_T ++#define C wchar_t ++#include "string-inst80.cc" +#endif -+ -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+_GLIBCXX_BEGIN_NAMESPACE_VERSION -+ -+ void -+ __throw_bad_array_new_length() -+ { _GLIBCXX_THROW_OR_ABORT(bad_array_new_length()); } -+ -+_GLIBCXX_END_NAMESPACE_VERSION -+} // namespace -diff --git a/libstdc++-v3/src/nonshared11/futex.cc b/libstdc++-v3/src/nonshared11/futex.cc +diff --git a/libstdc++-v3/src/nonshared17/Makefile.am b/libstdc++-v3/src/nonshared17/Makefile.am new file mode 100644 -index 000000000..a217117c1 +index 000000000..0772d098c --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/futex.cc -@@ -0,0 +1,23 @@ -+// Copyright (C) 2012-2023 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. ++++ b/libstdc++-v3/src/nonshared17/Makefile.am +@@ -0,0 +1,146 @@ ++## Makefile for the C++17 sources of the GNU C++ Standard library. ++## ++## Copyright (C) 1997-2024 Free Software Foundation, Inc. ++## ++## This file is part of the libstdc++ version 3 distribution. ++## Process this file with automake to produce Makefile.in. + -+// 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. ++## 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. + -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include "../c++11/futex.cc" -diff --git a/libstdc++-v3/src/nonshared11/futex80.cc b/libstdc++-v3/src/nonshared11/futex80.cc -new file mode 100644 -index 000000000..927de9fa0 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/futex80.cc -@@ -0,0 +1,24 @@ -+// Copyright (C) 2012-2023 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. ++## 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. + -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. ++## You should have received a copy of the GNU General Public License along ++## with this library; see the file COPYING3. If not see ++## . + -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . ++include $(top_srcdir)/fragment.am + -+#define _GLIBCXX_NONSHARED_CXX11_80 -+#include "../c++11/futex.cc" -diff --git a/libstdc++-v3/src/nonshared11/future48.cc b/libstdc++-v3/src/nonshared11/future48.cc -new file mode 100644 -index 000000000..eaed2c9f6 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/future48.cc -@@ -0,0 +1,33 @@ -+// Copyright (C) 2012-2023 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. ++# Convenience library for C++17 runtime. ++noinst_LTLIBRARIES = libnonshared17convenience80.la \ ++ libnonshared17convenience110.la + -+// 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. ++headers = + -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. ++if ENABLE_DUAL_ABI ++extra_string_inst_sources80 = cow-string-inst.cc ++extra_string_inst_sources110 = cow-string-inst110.cc ++extra_fs_sources80 = \ ++ cow-fs_dir.cc \ ++ cow-fs_ops.cc \ ++ cow-fs_path.cc ++extra_fs_sources110 = \ ++ cow-fs_dir110.cc ++else ++extra_string_inst_sources80 = ++extra_string_inst_sources110 = ++extra_fs_sources80 = ++extra_fs_sources110 = ++endif + -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . ++if ENABLE_EXTERN_TEMPLATE ++# XTEMPLATE_FLAGS = -fno-implicit-templates ++inst_sources80 = \ ++ ostream-inst.cc \ ++ string-inst.cc \ ++ $(extra_string_inst_sources80) ++inst_sources110 = \ ++ ostream-inst110.cc \ ++ string-inst110.cc \ ++ $(extra_string_inst_sources110) ++else ++# XTEMPLATE_FLAGS = ++inst_sources80 = ++inst_sources110 = ++endif + -+#define _GLIBCXX_NONSHARED_CXX11_48 -+#include "../c++11/future.cc" -+asm (".hidden _ZNSt13__future_base13_State_baseV211_Make_ready6_S_runEPv"); -+//asm (".hidden _ZNSt12future_errorC1ESt10error_code"); -+//asm (".hidden _ZNSt12future_errorC2ESt10error_code"); -+asm (".hidden _ZSt20__throw_future_errori"); -+asm (".hidden _ZNSt15_Sp_counted_ptrIDnLN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv"); -+asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv"); -+asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv"); -+asm (".hidden _ZNSt10unique_ptrINSt13__future_base13_State_baseV211_Make_readyESt14default_deleteIS2_EED1Ev"); -+asm (".hidden _ZNSt10unique_ptrINSt13__future_base13_State_baseV211_Make_readyESt14default_deleteIS2_EED2Ev"); -diff --git a/libstdc++-v3/src/nonshared11/ios-inst.cc b/libstdc++-v3/src/nonshared11/ios-inst.cc -new file mode 100644 -index 000000000..358e86b0f ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/ios-inst.cc -@@ -0,0 +1,49 @@ -+// Explicit instantiation file. ++sources80 = \ ++ eh_call.cc \ ++ eh_terminate.cc \ ++ floating_from_chars.cc \ ++ floating_to_chars.cc \ ++ fs_dir.cc \ ++ memory_resource.cc \ ++ fs_path80.cc \ ++ fs_ops80.cc \ ++ $(extra_fs_sources80) ++sources110 = \ ++ eh_call.cc \ ++ eh_terminate.cc \ ++ fs_dir110.cc \ ++ floating_from_chars110.cc \ ++ floating_to_chars110.cc \ ++ $(extra_fs_sources110) + -+// Copyright (C) 1997-2023 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. ++vpath % $(top_srcdir)/src/nonshared17 + -+// 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. ++libnonshared17convenience80_la_SOURCES = $(sources80) $(inst_sources80) ++libnonshared17convenience110_la_SOURCES = $(sources110) $(inst_sources110) + -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. ++# AM_CXXFLAGS needs to be in each subdirectory so that it can be ++# modified in a per-library or per-sub-library way. Need to manually ++# set this option because CONFIG_CXXFLAGS has to be after ++# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden ++# as the occasion calls for it. ++AM_CXXFLAGS = \ ++ -std=gnu++17 \ ++ $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \ ++ $(XTEMPLATE_FLAGS) $(VTV_CXXFLAGS) \ ++ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) \ ++ -fimplicit-templates + -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . ++AM_MAKEFLAGS = \ ++ "gxx_include_dir=$(gxx_include_dir)" + -+// -+// ISO C++ 14882: -+// ++# Libtool notes + -+#include ++# 1) In general, libtool expects an argument such as `--tag=CXX' when ++# using the C++ compiler, because that will enable the settings ++# detected when C++ support was being configured. However, when no ++# such flag is given in the command line, libtool attempts to figure ++# it out by matching the compiler name in each configuration section ++# against a prefix of the command line. The problem is that, if the ++# compiler name and its initial flags stored in the libtool ++# configuration file don't match those in the command line, libtool ++# can't decide which configuration to use, and it gives up. The ++# correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe ++# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to ++# attempt to infer which configuration to use. ++# ++# The second tag argument, `--tag disable-shared` means that libtool ++# only compiles each source once, for static objects. In actuality, ++# glibcxx_lt_pic_flag and glibcxx_compiler_shared_flag are added to ++# the libtool command that is used create the object, which is ++# suitable for shared libraries. The `--tag disable-shared` must be ++# placed after --tag CXX lest things CXX undo the affect of ++# disable-shared. + -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+_GLIBCXX_BEGIN_NAMESPACE_VERSION ++# 2) Need to explicitly set LTCXXCOMPILE so that EXTRA_CXX_FLAGS is ++# last. (That way, things like -O2 passed down from the toplevel can ++# be overridden by --enable-debug.) ++LTCXXCOMPILE = \ ++ $(LIBTOOL) --tag CXX --tag disable-shared \ ++ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \ ++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(EXTRA_CXX_FLAGS) + -+ template void basic_ios::move(basic_ios&&); -+ template void basic_ios::move(basic_ios&); -+ template void basic_ios::swap(basic_ios&); -+ template void basic_ios::set_rdbuf(basic_streambuf*); -+ template basic_ios::operator bool() const; -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template void basic_ios::move(basic_ios&&); -+ template void basic_ios::move(basic_ios&); -+ template void basic_ios::swap(basic_ios&); -+ template void basic_ios::set_rdbuf(basic_streambuf*); -+ template basic_ios::operator bool() const; -+#endif ++LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) + -+_GLIBCXX_END_NAMESPACE_VERSION -+} // namespace -diff --git a/libstdc++-v3/src/nonshared11/ios.cc b/libstdc++-v3/src/nonshared11/ios.cc ++# 3) We'd have a problem when building the shared libstdc++ object if ++# the rules automake generates would be used. We cannot allow g++ to ++# be used since this would add -lstdc++ to the link line which of ++# course is problematic at this point. So, we get the top-level ++# directory to configure libstdc++-v3 to use gcc as the C++ ++# compilation driver. ++CXXLINK = \ ++ $(LIBTOOL) --tag CXX --tag disable-shared \ ++ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=link $(CXX) \ ++ $(VTV_CXXLINKFLAGS) \ ++ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ +diff --git a/libstdc++-v3/src/nonshared17/Makefile.in b/libstdc++-v3/src/nonshared17/Makefile.in new file mode 100644 -index 000000000..22f2b4210 +index 000000000..3c5ce4aaa --- /dev/null -+++ b/libstdc++-v3/src/nonshared11/ios.cc -@@ -0,0 +1,30 @@ -+// Iostreams base classes -*- C++ -*- -+ -+// Copyright (C) 1997-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+// -+// ISO C++ 14882: 27.4 Iostreams base classes -+// ++++ b/libstdc++-v3/src/nonshared17/Makefile.in +@@ -0,0 +1,817 @@ ++# Makefile.in generated by automake 1.15.1 from Makefile.am. ++# @configure_input@ + -+#define _GLIBCXX_NONSHARED_CXX11 -+#include "../c++11/ios.cc" -diff --git a/libstdc++-v3/src/nonshared11/ios_errcat.cc b/libstdc++-v3/src/nonshared11/ios_errcat.cc -new file mode 100644 -index 000000000..9bb42a833 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/ios_errcat.cc -@@ -0,0 +1,29 @@ -+// std::iostream_category() definition -*- C++ -*- ++# Copyright (C) 1994-2017 Free Software Foundation, Inc. + -+// Copyright (C) 2014-2023 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 Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. + -+// 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. ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. + -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+// -+// ISO C++ 14882:2011: 27.5.6.5 Error reporting [error.reporting] -+// -+ -+#include "../c++11/ios_errcat.cc" -diff --git a/libstdc++-v3/src/nonshared11/iostream-inst.cc b/libstdc++-v3/src/nonshared11/iostream-inst.cc -new file mode 100644 -index 000000000..f479d9e63 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/iostream-inst.cc -@@ -0,0 +1,46 @@ -+// Explicit instantiation file. -+ -+// Copyright (C) 1997-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+// -+// ISO C++ 14882: -+// -+ -+#include -+#include -+ -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+_GLIBCXX_BEGIN_NAMESPACE_VERSION -+ -+ template basic_iostream::basic_iostream(basic_iostream&&); -+ template basic_iostream& basic_iostream::operator=(basic_iostream&&); -+ template void basic_iostream::swap(basic_iostream&); -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template basic_iostream::basic_iostream(basic_iostream&&); -+ template basic_iostream& basic_iostream::operator=(basic_iostream&&); -+ template void basic_iostream::swap(basic_iostream&); -+#endif -+ -+_GLIBCXX_END_NAMESPACE_VERSION -+} // namespace -diff --git a/libstdc++-v3/src/nonshared11/istream-inst.cc b/libstdc++-v3/src/nonshared11/istream-inst.cc -new file mode 100644 -index 000000000..bf896a1f7 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/istream-inst.cc -@@ -0,0 +1,132 @@ -+// Explicit instantiation file. -+ -+// Copyright (C) 1997-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+// -+// ISO C++ 14882: -+// -+ -+#include -+#include -+ -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+_GLIBCXX_BEGIN_NAMESPACE_VERSION -+ -+#ifndef _GLIBCXX_NONSHARED_CXX11_80 -+ template basic_istream::basic_istream(basic_istream&&); -+ template basic_istream& basic_istream::operator=(basic_istream&&); -+ template void basic_istream::swap(basic_istream&); -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template basic_istream::basic_istream(basic_istream&&); -+ template basic_istream& basic_istream::operator=(basic_istream&&); -+ template void basic_istream::swap(basic_istream&); -+#endif -+#endif -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template void __istream_extract(wistream&, wchar_t*, streamsize); -+#endif -+ -+ void -+ __istream_extract(istream& __in, char* __s, streamsize __num) -+ { -+ typedef basic_istream __istream_type; -+ typedef __istream_type::int_type __int_type; -+ typedef __istream_type::char_type __char_type; -+ typedef __istream_type::traits_type __traits_type; -+ typedef __istream_type::__streambuf_type __streambuf_type; -+ typedef __istream_type::__ctype_type __ctype_type; -+ -+ streamsize __extracted = 0; -+ ios_base::iostate __err = ios_base::goodbit; -+ __istream_type::sentry __cerb(__in, false); -+ if (__cerb) -+ { -+ __try -+ { -+ // Figure out how many characters to extract. -+ streamsize __width = __in.width(); -+ if (0 < __width && __width < __num) -+ __num = __width; -+ -+ const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); -+ -+ const __int_type __eof = __traits_type::eof(); -+ __streambuf_type* __sb = __in.rdbuf(); -+ __int_type __c = __sb->sgetc(); -+ -+ while (__extracted < __num - 1 -+ && !__traits_type::eq_int_type(__c, __eof) -+ && !__ct.is(ctype_base::space, -+ __traits_type::to_char_type(__c))) -+ { -+ streamsize __size = std::min(streamsize(__sb->egptr() -+ - __sb->gptr()), -+ streamsize(__num - __extracted -+ - 1)); -+ if (__size > 1) -+ { -+ __size = (__ct.scan_is(ctype_base::space, -+ __sb->gptr() + 1, -+ __sb->gptr() + __size) -+ - __sb->gptr()); -+ __traits_type::copy(__s, __sb->gptr(), __size); -+ __s += __size; -+ __sb->__safe_gbump(__size); -+ __extracted += __size; -+ __c = __sb->sgetc(); -+ } -+ else -+ { -+ *__s++ = __traits_type::to_char_type(__c); -+ ++__extracted; -+ __c = __sb->snextc(); -+ } -+ } -+ -+ if (__extracted < __num - 1 -+ && __traits_type::eq_int_type(__c, __eof)) -+ __err |= ios_base::eofbit; -+ -+ // _GLIBCXX_RESOLVE_LIB_DEFECTS -+ // 68. Extractors for char* should store null at end -+ *__s = __char_type(); -+ __in.width(0); -+ } -+ __catch(__cxxabiv1::__forced_unwind&) -+ { -+ __in._M_setstate(ios_base::badbit); -+ __throw_exception_again; -+ } -+ __catch(...) -+ { __in._M_setstate(ios_base::badbit); } -+ } -+ if (!__extracted) -+ __err |= ios_base::failbit; -+ if (__err) -+ __in.setstate(__err); -+ } -+ -+_GLIBCXX_END_NAMESPACE_VERSION -+} // namespace -diff --git a/libstdc++-v3/src/nonshared11/istream-inst80.cc b/libstdc++-v3/src/nonshared11/istream-inst80.cc -new file mode 100644 -index 000000000..04e627f80 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/istream-inst80.cc -@@ -0,0 +1,24 @@ -+// Copyright (C) 2012-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_NONSHARED_CXX11_80 -+#include "istream-inst.cc" -diff --git a/libstdc++-v3/src/nonshared11/limits.cc b/libstdc++-v3/src/nonshared11/limits.cc -new file mode 100644 -index 000000000..1af5a5e73 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/limits.cc -@@ -0,0 +1,57 @@ -+// Copyright (C) 2019-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include -+ -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+ -+#define const _GLIBCXX_USE_CONSTEXPR -+ -+#ifdef _GLIBCXX_USE_CHAR8_T -+ // char8_t -+ const bool numeric_limits::is_specialized; -+ const int numeric_limits::digits; -+ const int numeric_limits::digits10; -+// const int numeric_limits::max_digits10; -+ const bool numeric_limits::is_signed; -+ const bool numeric_limits::is_integer; -+ const bool numeric_limits::is_exact; -+ const int numeric_limits::radix; -+ const int numeric_limits::min_exponent; -+ const int numeric_limits::min_exponent10; -+ const int numeric_limits::max_exponent; -+ const int numeric_limits::max_exponent10; -+ const bool numeric_limits::has_infinity; -+ const bool numeric_limits::has_quiet_NaN; -+ const bool numeric_limits::has_signaling_NaN; -+ const float_denorm_style numeric_limits::has_denorm; -+ const bool numeric_limits::has_denorm_loss; -+ const bool numeric_limits::is_iec559; -+ const bool numeric_limits::is_bounded; -+ const bool numeric_limits::is_modulo; -+ const bool numeric_limits::traps; -+ const bool numeric_limits::tinyness_before; -+ const float_round_style numeric_limits::round_style; -+#endif // _GLIBCXX_USE_CHAR8_T -+ -+} -diff --git a/libstdc++-v3/src/nonshared11/locale-inst-asm.S b/libstdc++-v3/src/nonshared11/locale-inst-asm.S -new file mode 100644 -index 000000000..92d7b6afc ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/locale-inst-asm.S -@@ -0,0 +1,291 @@ -+/* Copyright (C) 2015-2023 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. -+ -+ Under Section 7 of GPL version 3, you are granted additional -+ permissions described in the GCC Runtime Library Exception, version -+ 3.1, as published by the Free Software Foundation. -+ -+ You should have received a copy of the GNU General Public License and -+ a copy of the GCC Runtime Library Exception along with this program; -+ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+ . */ -+ -+#ifdef __i386__ -+#define ALIGN1 .align 4 -+#elif defined __x86_64__ -+#define ALIGN1 .align 32 -+#define ALIGN2 .align 16 -+#elif defined __ia64__ -+#define ALIGN1 .align 8 -+#define ALIGN3 .align 8 -+#define SECTION3(x).section .gnu.linkonce.s.x,"aws",@progbits -+#define POINTER data8 -+#define FLAGS data4 -+#define PAD .skip 4 -+#define STRING stringz -+#define VPTR(x) data16.ua @iplt(x) -+#define SIZE3 48 -+#elif defined __powerpc64__ -+#define ALIGN1 .align 3 -+#define ALIGN3 .align 3 -+#elif defined __powerpc__ -+#define ALIGN1 .align 2 -+#define ALIGN3 .align 2 -+#define SECTION2(x).section .gnu.linkonce.s.x,"aw",@progbits -+#define SECTION3(x)SECTION2(x) -+#elif defined __aarch64__ -+#define ALIGN1 .align 3 -+#define ALIGN3 .align 3 -+#define POINTER .xword -+#define FLAGS .word -+#define OBJECT %object -+#elif defined __s390x__ -+#define ALIGN1 .align 8 -+#define ALIGN3 .align 2 -+#elif defined __s390__ -+#define ALIGN1 .align 4 -+#define ALIGN3 .align 2 -+#endif -+#if defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __ia64__ || defined __aarch64__ -+#define SIZE1 32 -+#define SIZE2 16 -+#define OFF 16 -+#ifndef POINTER -+#define POINTER .quad -+#endif -+#ifndef FLAGS -+#define FLAGS .long -+#endif -+#ifndef PAD -+#define PAD .zero 4 -+#endif -+#else -+#define SIZE1 16 -+#define SIZE2 8 -+#define OFF 8 -+#ifndef POINTER -+#define POINTER .long -+#endif -+#ifndef FLAGS -+#define FLAGS .long -+#endif -+#ifndef PAD -+#define PAD -+#endif -+#endif -+#ifndef SYM -+#define SYM(x)x -+#endif -+#ifndef ALIGN2 -+#define ALIGN2 ALIGN1 -+#endif -+#ifndef ALIGN3 -+#define ALIGN3 -+#endif -+#ifndef OBJECT -+#define OBJECT @object -+#endif -+#ifndef SECTION1 -+#define SECTION1(x).section .gnu.linkonce.d.rel.ro.x,"aw",@progbits -+#endif -+#ifndef SECTION2 -+#define SECTION2(x)SECTION1(x) -+#endif -+#ifndef SECTION3 -+#define SECTION3(x).section .gnu.linkonce.r.x,"a",@progbits -+#endif -+#ifndef STRING -+#define STRING .string -+#endif -+#ifndef SIZE3 -+#define SIZE3 SIZE1 -+#endif -+#ifndef VPTR -+#define VPTR(x) POINTER SYM(x) -+#endif -+ -+ .weak SYM(_ZTISt18__moneypunct_cacheIcLb0EE) -+ .hidden SYM(_ZTISt18__moneypunct_cacheIcLb0EE) -+ SECTION1(_ZTISt18__moneypunct_cacheIcLb0EE) -+ ALIGN1 -+ .type SYM(_ZTISt18__moneypunct_cacheIcLb0EE), OBJECT -+ .size SYM(_ZTISt18__moneypunct_cacheIcLb0EE), SIZE1+SIZE2 -+_ZTISt18__moneypunct_cacheIcLb0EE: -+ POINTER SYM(_ZTVN10__cxxabiv120__si_class_type_infoE)+OFF -+ POINTER SYM(_ZTSSt18__moneypunct_cacheIcLb0EE) -+ POINTER SYM(_ZTINSt6locale5facetE) -+ .weak SYM(_ZTSSt18__moneypunct_cacheIcLb0EE) -+ .hidden SYM(_ZTSSt18__moneypunct_cacheIcLb0EE) -+ SECTION3(_ZTSSt18__moneypunct_cacheIcLb0EE) -+ ALIGN3 -+ .type SYM(_ZTSSt18__moneypunct_cacheIcLb0EE), OBJECT -+ .size SYM(_ZTSSt18__moneypunct_cacheIcLb0EE), 30 -+_ZTSSt18__moneypunct_cacheIcLb0EE: -+ STRING "St18__moneypunct_cacheIcLb0EE" -+ .weak SYM(_ZTVSt18__moneypunct_cacheIcLb0EE) -+ .hidden SYM(_ZTVSt18__moneypunct_cacheIcLb0EE) -+ SECTION1(_ZTVSt18__moneypunct_cacheIcLb0EE) -+ ALIGN1 -+ .type SYM(_ZTVSt18__moneypunct_cacheIcLb0EE), OBJECT -+ .size SYM(_ZTVSt18__moneypunct_cacheIcLb0EE), SIZE3 -+_ZTVSt18__moneypunct_cacheIcLb0EE: -+ POINTER 0 -+ POINTER SYM(_ZTISt18__moneypunct_cacheIcLb0EE) -+ VPTR(_ZNSt18__moneypunct_cacheIcLb0EED1Ev) -+ VPTR(_ZNSt18__moneypunct_cacheIcLb0EED0Ev) -+ .weak SYM(_ZTISt18__moneypunct_cacheIcLb1EE) -+ .hidden SYM(_ZTISt18__moneypunct_cacheIcLb1EE) -+ SECTION1(_ZTISt18__moneypunct_cacheIcLb1EE) -+ ALIGN1 -+ .type SYM(_ZTISt18__moneypunct_cacheIcLb1EE), OBJECT -+ .size SYM(_ZTISt18__moneypunct_cacheIcLb1EE), SIZE1+SIZE2 -+_ZTISt18__moneypunct_cacheIcLb1EE: -+ POINTER SYM(_ZTVN10__cxxabiv120__si_class_type_infoE)+OFF -+ POINTER SYM(_ZTSSt18__moneypunct_cacheIcLb1EE) -+ POINTER SYM(_ZTINSt6locale5facetE) -+ .weak SYM(_ZTSSt18__moneypunct_cacheIcLb1EE) -+ .hidden SYM(_ZTSSt18__moneypunct_cacheIcLb1EE) -+ SECTION3(_ZTSSt18__moneypunct_cacheIcLb1EE) -+ ALIGN3 -+ .type SYM(_ZTSSt18__moneypunct_cacheIcLb1EE), OBJECT -+ .size SYM(_ZTSSt18__moneypunct_cacheIcLb1EE), 30 -+_ZTSSt18__moneypunct_cacheIcLb1EE: -+ STRING "St18__moneypunct_cacheIcLb1EE" -+ .weak SYM(_ZTVSt18__moneypunct_cacheIcLb1EE) -+ .hidden SYM(_ZTVSt18__moneypunct_cacheIcLb1EE) -+ SECTION1(_ZTVSt18__moneypunct_cacheIcLb1EE) -+ ALIGN1 -+ .type SYM(_ZTVSt18__moneypunct_cacheIcLb1EE), OBJECT -+ .size SYM(_ZTVSt18__moneypunct_cacheIcLb1EE), SIZE3 -+_ZTVSt18__moneypunct_cacheIcLb1EE: -+ POINTER 0 -+ POINTER SYM(_ZTISt18__moneypunct_cacheIcLb1EE) -+ VPTR(_ZNSt18__moneypunct_cacheIcLb1EED1Ev) -+ VPTR(_ZNSt18__moneypunct_cacheIcLb1EED0Ev) -+ .weak SYM(_ZTISt18__moneypunct_cacheIwLb0EE) -+ .hidden SYM(_ZTISt18__moneypunct_cacheIwLb0EE) -+ SECTION1(_ZTISt18__moneypunct_cacheIwLb0EE) -+ ALIGN1 -+ .type SYM(_ZTISt18__moneypunct_cacheIwLb0EE), OBJECT -+ .size SYM(_ZTISt18__moneypunct_cacheIwLb0EE), SIZE1+SIZE2 -+_ZTISt18__moneypunct_cacheIwLb0EE: -+ POINTER SYM(_ZTVN10__cxxabiv120__si_class_type_infoE)+OFF -+ POINTER SYM(_ZTSSt18__moneypunct_cacheIwLb0EE) -+ POINTER SYM(_ZTINSt6locale5facetE) -+ .weak SYM(_ZTSSt18__moneypunct_cacheIwLb0EE) -+ .hidden SYM(_ZTSSt18__moneypunct_cacheIwLb0EE) -+ SECTION3(_ZTSSt18__moneypunct_cacheIwLb0EE) -+ ALIGN3 -+ .type SYM(_ZTSSt18__moneypunct_cacheIwLb0EE), OBJECT -+ .size SYM(_ZTSSt18__moneypunct_cacheIwLb0EE), 30 -+_ZTSSt18__moneypunct_cacheIwLb0EE: -+ STRING "St18__moneypunct_cacheIwLb0EE" -+ .weak SYM(_ZTVSt18__moneypunct_cacheIwLb0EE) -+ .hidden SYM(_ZTVSt18__moneypunct_cacheIwLb0EE) -+ SECTION1(_ZTVSt18__moneypunct_cacheIwLb0EE) -+ ALIGN1 -+ .type SYM(_ZTVSt18__moneypunct_cacheIwLb0EE), OBJECT -+ .size SYM(_ZTVSt18__moneypunct_cacheIwLb0EE), SIZE3 -+_ZTVSt18__moneypunct_cacheIwLb0EE: -+ POINTER 0 -+ POINTER SYM(_ZTISt18__moneypunct_cacheIwLb0EE) -+ VPTR(_ZNSt18__moneypunct_cacheIwLb0EED1Ev) -+ VPTR(_ZNSt18__moneypunct_cacheIwLb0EED0Ev) -+ .weak SYM(_ZTISt18__moneypunct_cacheIwLb1EE) -+ .hidden SYM(_ZTISt18__moneypunct_cacheIwLb1EE) -+ SECTION1(_ZTISt18__moneypunct_cacheIwLb1EE) -+ ALIGN1 -+ .type SYM(_ZTISt18__moneypunct_cacheIwLb1EE), OBJECT -+ .size SYM(_ZTISt18__moneypunct_cacheIwLb1EE), SIZE1+SIZE2 -+_ZTISt18__moneypunct_cacheIwLb1EE: -+ POINTER SYM(_ZTVN10__cxxabiv120__si_class_type_infoE)+OFF -+ POINTER SYM(_ZTSSt18__moneypunct_cacheIwLb1EE) -+ POINTER SYM(_ZTINSt6locale5facetE) -+ .weak SYM(_ZTSSt18__moneypunct_cacheIwLb1EE) -+ .hidden SYM(_ZTSSt18__moneypunct_cacheIwLb1EE) -+ SECTION3(_ZTSSt18__moneypunct_cacheIwLb1EE) -+ ALIGN3 -+ .type SYM(_ZTSSt18__moneypunct_cacheIwLb1EE), OBJECT -+ .size SYM(_ZTSSt18__moneypunct_cacheIwLb1EE), 30 -+_ZTSSt18__moneypunct_cacheIwLb1EE: -+ STRING "St18__moneypunct_cacheIwLb1EE" -+ .weak SYM(_ZTVSt18__moneypunct_cacheIwLb1EE) -+ .hidden SYM(_ZTVSt18__moneypunct_cacheIwLb1EE) -+ SECTION1(_ZTVSt18__moneypunct_cacheIwLb1EE) -+ ALIGN1 -+ .type SYM(_ZTVSt18__moneypunct_cacheIwLb1EE), OBJECT -+ .size SYM(_ZTVSt18__moneypunct_cacheIwLb1EE), SIZE3 -+_ZTVSt18__moneypunct_cacheIwLb1EE: -+ POINTER 0 -+ POINTER SYM(_ZTISt18__moneypunct_cacheIwLb1EE) -+ VPTR(_ZNSt18__moneypunct_cacheIwLb1EED1Ev) -+ VPTR(_ZNSt18__moneypunct_cacheIwLb1EED0Ev) -+ .weak SYM(_ZTISt16__numpunct_cacheIcE) -+ .hidden SYM(_ZTISt16__numpunct_cacheIcE) -+ SECTION1(_ZTISt16__numpunct_cacheIcE) -+ ALIGN1 -+ .type SYM(_ZTISt16__numpunct_cacheIcE), OBJECT -+ .size SYM(_ZTISt16__numpunct_cacheIcE), SIZE1+SIZE2 -+_ZTISt16__numpunct_cacheIcE: -+ POINTER SYM(_ZTVN10__cxxabiv120__si_class_type_infoE)+OFF -+ POINTER SYM(_ZTSSt16__numpunct_cacheIcE) -+ POINTER SYM(_ZTINSt6locale5facetE) -+ .weak SYM(_ZTSSt16__numpunct_cacheIcE) -+ .hidden SYM(_ZTSSt16__numpunct_cacheIcE) -+ SECTION3(_ZTSSt16__numpunct_cacheIcE) -+ ALIGN3 -+ .type SYM(_ZTSSt16__numpunct_cacheIcE), OBJECT -+ .size SYM(_ZTSSt16__numpunct_cacheIcE), 24 -+_ZTSSt16__numpunct_cacheIcE: -+ STRING "St16__numpunct_cacheIcE" -+ .weak SYM(_ZTVSt16__numpunct_cacheIcE) -+ .hidden SYM(_ZTVSt16__numpunct_cacheIcE) -+ SECTION1(_ZTVSt16__numpunct_cacheIcE) -+ ALIGN1 -+ .type SYM(_ZTVSt16__numpunct_cacheIcE), OBJECT -+ .size SYM(_ZTVSt16__numpunct_cacheIcE), SIZE3 -+_ZTVSt16__numpunct_cacheIcE: -+ POINTER 0 -+ POINTER SYM(_ZTISt16__numpunct_cacheIcE) -+ VPTR(_ZNSt16__numpunct_cacheIcED1Ev) -+ VPTR(_ZNSt16__numpunct_cacheIcED0Ev) -+ .weak SYM(_ZTISt16__numpunct_cacheIwE) -+ .hidden SYM(_ZTISt16__numpunct_cacheIwE) -+ SECTION1(_ZTISt16__numpunct_cacheIwE) -+ ALIGN1 -+ .type SYM(_ZTISt16__numpunct_cacheIwE), OBJECT -+ .size SYM(_ZTISt16__numpunct_cacheIwE), SIZE1+SIZE2 -+_ZTISt16__numpunct_cacheIwE: -+ POINTER SYM(_ZTVN10__cxxabiv120__si_class_type_infoE)+OFF -+ POINTER SYM(_ZTSSt16__numpunct_cacheIwE) -+ POINTER SYM(_ZTINSt6locale5facetE) -+ .weak SYM(_ZTSSt16__numpunct_cacheIwE) -+ .hidden SYM(_ZTSSt16__numpunct_cacheIwE) -+ SECTION3(_ZTSSt16__numpunct_cacheIwE) -+ ALIGN3 -+ .type SYM(_ZTSSt16__numpunct_cacheIwE), OBJECT -+ .size SYM(_ZTSSt16__numpunct_cacheIwE), 24 -+_ZTSSt16__numpunct_cacheIwE: -+ STRING "St16__numpunct_cacheIwE" -+ .weak SYM(_ZTVSt16__numpunct_cacheIwE) -+ .hidden SYM(_ZTVSt16__numpunct_cacheIwE) -+ SECTION1(_ZTVSt16__numpunct_cacheIwE) -+ ALIGN1 -+ .type SYM(_ZTVSt16__numpunct_cacheIwE), OBJECT -+ .size SYM(_ZTVSt16__numpunct_cacheIwE), SIZE3 -+_ZTVSt16__numpunct_cacheIwE: -+ POINTER 0 -+ POINTER SYM(_ZTISt16__numpunct_cacheIwE) -+ VPTR(_ZNSt16__numpunct_cacheIwED1Ev) -+ VPTR(_ZNSt16__numpunct_cacheIwED0Ev) -+ .section .note.GNU-stack,"",@progbits -diff --git a/libstdc++-v3/src/nonshared11/locale-inst.cc b/libstdc++-v3/src/nonshared11/locale-inst.cc -new file mode 100644 -index 000000000..502bf0e86 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/locale-inst.cc -@@ -0,0 +1,126 @@ -+// Locale support -*- C++ -*- -+ -+// Copyright (C) 1999-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+// -+// ISO C++ 14882: 22.1 Locales -+// -+ -+#ifndef _GLIBCXX_USE_CXX11_ABI -+// Instantiations in this file use the old COW std::string ABI unless included -+// by another file which defines _GLIBCXX_USE_CXX11_ABI=1. Some instantiations -+// are guarded by a check for !_GLIBCXX_USE_CXX11_ABI so that they are only -+// instantiated once, because they are not tagged with abi_tag so should not -+// be instantiated twice. -+# define _GLIBCXX_USE_CXX11_ABI 0 -+#endif -+ -+#include -+ -+// Instantiation configuration. -+#ifndef C -+# define C char -+# define C_is_char -+#endif -+ -+#define INSTANTIATE_USE_FACET(...) \ -+ template const __VA_ARGS__* \ -+ __try_use_facet< __VA_ARGS__ >(const locale&) noexcept -+ -+#define INSTANTIATE_FACET_ACCESSORS(...) \ -+ INSTANTIATE_USE_FACET(__VA_ARGS__) -+ -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+_GLIBCXX_BEGIN_NAMESPACE_VERSION -+ -+#ifndef _GLIBCXX_NONSHARED_CXX11_110 -+#ifndef _GLIBCXX_NONSHARED_CXX11_80 -+ -+ template C* __add_grouping(C*, C, char const*, size_t, C const*, C const*); -+ -+ template moneypunct_byname::moneypunct_byname(const string&, size_t); -+ template moneypunct_byname::moneypunct_byname(const string&, size_t); -+ template numpunct_byname::numpunct_byname(const string&, size_t); -+ template time_put_byname::time_put_byname(const string&, size_t); -+ template time_get_byname::time_get_byname(const string&, size_t); -+ template time_get>::iter_type time_get>::get(iter_type, iter_type, ios_base&, ios_base::iostate&, tm*, const C*, const C*) const; -+ template time_get>::iter_type time_get>::do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, tm*, char, char) const; -+ template messages_byname::messages_byname(const string&, size_t); -+ ctype_byname::ctype_byname(const string& __s, size_t __refs) -+ : ctype_byname(__s.c_str(), __refs) { } -+ template codecvt_byname::codecvt_byname(const string&, size_t); -+#endif -+ -+ template time_get>::iter_type time_get>::get(iter_type, iter_type, ios_base&, ios_base::iostate&, tm*, char, char) const; -+ template collate_byname::collate_byname(const string&, size_t); -+#endif -+ template time_get>::iter_type time_get>::_M_extract_via_format(iter_type, iter_type, ios_base&, ios_base::iostate&, tm*, const C*, __time_get_state&) const; -+ template void __timepunct::_M_am_pm_format(C const**) const; -+ -+#if ! _GLIBCXX_USE_CXX11_ABI -+INSTANTIATE_FACET_ACCESSORS(ctype); -+INSTANTIATE_FACET_ACCESSORS(codecvt); -+#endif -+INSTANTIATE_FACET_ACCESSORS(collate); -+INSTANTIATE_FACET_ACCESSORS(numpunct); -+INSTANTIATE_FACET_ACCESSORS(moneypunct); -+INSTANTIATE_USE_FACET (moneypunct); -+#if ! _GLIBCXX_USE_CXX11_ABI -+INSTANTIATE_FACET_ACCESSORS(__timepunct); -+INSTANTIATE_FACET_ACCESSORS(time_put); -+#endif -+INSTANTIATE_FACET_ACCESSORS(time_get); -+INSTANTIATE_FACET_ACCESSORS(messages); -+ -+INSTANTIATE_FACET_ACCESSORS(money_put); -+INSTANTIATE_FACET_ACCESSORS(money_get); -+ -+#if ! _GLIBCXX_USE_CXX11_ABI -+INSTANTIATE_FACET_ACCESSORS(num_get); -+INSTANTIATE_FACET_ACCESSORS(num_put); -+#endif -+ -+_GLIBCXX_END_NAMESPACE_VERSION -+} // namespace -+ -+#ifndef _GLIBCXX_NONSHARED_CXX11_110 -+#ifndef _GLIBCXX_NONSHARED_CXX11_80 -+#ifdef C_is_char -+#if defined(__i386__) || (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__)) -+//asm (".hidden _ZSt14__add_groupingIwEPT_S1_S0_PKcjPKS0_S5_"); -+#else -+//asm (".hidden _ZSt14__add_groupingIwEPT_S1_S0_PKcmPKS0_S5_"); -+#endif -+#endif -+#endif -+#ifdef C_is_char -+asm (".hidden _ZNKSt5ctypeIcE8do_widenEc"); -+#endif -+#endif -diff --git a/libstdc++-v3/src/nonshared11/locale-inst110.cc b/libstdc++-v3/src/nonshared11/locale-inst110.cc -new file mode 100644 -index 000000000..98bb81522 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/locale-inst110.cc -@@ -0,0 +1,25 @@ -+// Copyright (C) 1999-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_NONSHARED_CXX11_110 -+#include "locale-inst.cc" -+asm (".hidden _ZNKSt5ctypeIcE8do_widenEc"); -diff --git a/libstdc++-v3/src/nonshared11/locale-inst80.cc b/libstdc++-v3/src/nonshared11/locale-inst80.cc -new file mode 100644 -index 000000000..8e550f612 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/locale-inst80.cc -@@ -0,0 +1,29 @@ -+// Copyright (C) 1999-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_NONSHARED_CXX11_80 -+#include "locale-inst.cc" -+#ifdef C_is_char -+asm (".hidden _ZNKSt5ctypeIcE9do_narrowEcc"); -+asm (".hidden _ZNKSt5ctypeIcE8do_widenEPKcS2_Pc"); -+asm (".hidden _ZNKSt19istreambuf_iteratorIcSt11char_traitsIcEE6_M_getEv"); -+#endif -diff --git a/libstdc++-v3/src/nonshared11/new_handler.cc b/libstdc++-v3/src/nonshared11/new_handler.cc -new file mode 100644 -index 000000000..cea209700 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/new_handler.cc -@@ -0,0 +1,72 @@ -+// Implementation file for the -*- C++ -*- dynamic memory management header. -+ -+// Copyright (C) 1996-2023 Free Software Foundation, Inc. -+// -+// This file is part of GCC. -+// -+// GCC 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. -+// -+// GCC 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. -+// -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include -+#include -+ -+// This is inherently thread-unsafe, but so is libstdc++ < 4.9 -+// std::set_new_handler and this hopefully doesn't make things much worse -+// than that. -+namespace -+{ -+ __gnu_cxx::__mutex mx; -+ std::new_handler handler; -+ -+ void new_handler_wrapper () -+ { -+ std::new_handler h; -+ { -+ __gnu_cxx::__scoped_lock l(mx); -+ h = handler; -+ } -+ h (); -+ } -+} -+ -+std::new_handler -+std::get_new_handler () noexcept -+{ -+ __gnu_cxx::__scoped_lock l(mx); -+ handler = std::set_new_handler (new_handler_wrapper); -+ std::set_new_handler (handler); -+ return handler; -+} -+ -+asm (".hidden _ZN9__gnu_cxx24__concurrence_lock_errorD0Ev"); -+asm (".hidden _ZN9__gnu_cxx24__concurrence_lock_errorD1Ev"); -+asm (".hidden _ZN9__gnu_cxx24__concurrence_lock_errorD2Ev"); -+asm (".hidden _ZN9__gnu_cxx26__concurrence_unlock_errorD0Ev"); -+asm (".hidden _ZN9__gnu_cxx26__concurrence_unlock_errorD1Ev"); -+asm (".hidden _ZN9__gnu_cxx26__concurrence_unlock_errorD2Ev"); -+asm (".hidden _ZN9__gnu_cxx30__throw_concurrence_lock_errorEv"); -+asm (".hidden _ZNK9__gnu_cxx24__concurrence_lock_error4whatEv"); -+asm (".hidden _ZNK9__gnu_cxx26__concurrence_unlock_error4whatEv"); -+asm (".hidden _ZTIN9__gnu_cxx24__concurrence_lock_errorE"); -+asm (".hidden _ZTIN9__gnu_cxx26__concurrence_unlock_errorE"); -+asm (".hidden _ZTSN9__gnu_cxx24__concurrence_lock_errorE"); -+asm (".hidden _ZTSN9__gnu_cxx26__concurrence_unlock_errorE"); -+asm (".hidden _ZTVN9__gnu_cxx24__concurrence_lock_errorE"); -+asm (".hidden _ZTVN9__gnu_cxx26__concurrence_unlock_errorE"); -+asm (".hidden _ZN9__gnu_cxx32__throw_concurrence_unlock_errorEv"); -diff --git a/libstdc++-v3/src/nonshared11/new_opa.cc b/libstdc++-v3/src/nonshared11/new_opa.cc -new file mode 100644 -index 000000000..8d2887146 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/new_opa.cc -@@ -0,0 +1,23 @@ -+// Copyright (C) 2017-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include "../libsupc++/new_opa.cc" -diff --git a/libstdc++-v3/src/nonshared11/new_opant.cc b/libstdc++-v3/src/nonshared11/new_opant.cc -new file mode 100644 -index 000000000..8ae3d7203 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/new_opant.cc -@@ -0,0 +1,23 @@ -+// Copyright (C) 2017-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include "../libsupc++/new_opant.cc" -diff --git a/libstdc++-v3/src/nonshared11/new_opva.cc b/libstdc++-v3/src/nonshared11/new_opva.cc -new file mode 100644 -index 000000000..632536d98 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/new_opva.cc -@@ -0,0 +1,23 @@ -+// Copyright (C) 2017-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include "../libsupc++/new_opva.cc" -diff --git a/libstdc++-v3/src/nonshared11/new_opvant.cc b/libstdc++-v3/src/nonshared11/new_opvant.cc -new file mode 100644 -index 000000000..cbfb22203 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/new_opvant.cc -@@ -0,0 +1,23 @@ -+// Copyright (C) 2017-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include "../libsupc++/new_opvant.cc" -diff --git a/libstdc++-v3/src/nonshared11/ostream-inst.cc b/libstdc++-v3/src/nonshared11/ostream-inst.cc -new file mode 100644 -index 000000000..26d030228 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/ostream-inst.cc -@@ -0,0 +1,48 @@ -+// Explicit instantiation file. -+ -+// Copyright (C) 1997-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+// -+// ISO C++ 14882: -+// -+ -+#include -+#include -+ -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+_GLIBCXX_BEGIN_NAMESPACE_VERSION -+ -+ template basic_ostream::basic_ostream(basic_ostream&&); -+ template basic_ostream& basic_ostream::operator=(basic_ostream&&); -+ template void basic_ostream::swap(basic_ostream&); -+ template basic_ostream::basic_ostream(basic_iostream&); -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template basic_ostream::basic_ostream(basic_ostream&&); -+ template basic_ostream& basic_ostream::operator=(basic_ostream&&); -+ template void basic_ostream::swap(basic_ostream&); -+ template basic_ostream::basic_ostream(basic_iostream&); -+#endif -+ -+_GLIBCXX_END_NAMESPACE_VERSION -+} // namespace -diff --git a/libstdc++-v3/src/nonshared11/random.cc b/libstdc++-v3/src/nonshared11/random.cc -new file mode 100644 -index 000000000..57dae5d4b ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/random.cc -@@ -0,0 +1,24 @@ -+// Copyright (C) 2013-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_NONSHARED_CXX11_48 -+#include "../c++11/random.cc" -diff --git a/libstdc++-v3/src/nonshared11/regex48.cc b/libstdc++-v3/src/nonshared11/regex48.cc -new file mode 100644 -index 000000000..f530fc067 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/regex48.cc -@@ -0,0 +1,31 @@ -+// Copyright (C) 2012-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include "../c++11/regex.cc" -+ -+asm (".hidden _ZNSt11regex_errorD0Ev"); -+asm (".hidden _ZNSt11regex_errorD1Ev"); -+asm (".hidden _ZNSt11regex_errorD2Ev"); -+asm (".hidden _ZTSSt11regex_error"); -+asm (".hidden _ZTISt11regex_error"); -+asm (".hidden _ZTVSt11regex_error"); -+asm (".hidden _ZSt19__throw_regex_errorNSt15regex_constants10error_typeE"); -diff --git a/libstdc++-v3/src/nonshared11/shared_ptr48.cc b/libstdc++-v3/src/nonshared11/shared_ptr48.cc -new file mode 100644 -index 000000000..9aa6efce4 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/shared_ptr48.cc -@@ -0,0 +1,41 @@ -+// Copyright (C) 2012-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_NONSHARED_CXX11_48 -+#include "../c++11/shared_ptr.cc" -+asm (".hidden _ZN9__gnu_cxx24__concurrence_lock_errorD0Ev"); -+asm (".hidden _ZN9__gnu_cxx24__concurrence_lock_errorD1Ev"); -+asm (".hidden _ZN9__gnu_cxx24__concurrence_lock_errorD2Ev"); -+asm (".hidden _ZN9__gnu_cxx26__concurrence_unlock_errorD0Ev"); -+asm (".hidden _ZN9__gnu_cxx26__concurrence_unlock_errorD1Ev"); -+asm (".hidden _ZN9__gnu_cxx26__concurrence_unlock_errorD2Ev"); -+asm (".hidden _ZN9__gnu_cxx30__throw_concurrence_lock_errorEv"); -+asm (".hidden _ZNK9__gnu_cxx24__concurrence_lock_error4whatEv"); -+asm (".hidden _ZNK9__gnu_cxx26__concurrence_unlock_error4whatEv"); -+asm (".hidden _ZTIN9__gnu_cxx24__concurrence_lock_errorE"); -+asm (".hidden _ZTIN9__gnu_cxx26__concurrence_unlock_errorE"); -+asm (".hidden _ZTSN9__gnu_cxx24__concurrence_lock_errorE"); -+asm (".hidden _ZTSN9__gnu_cxx26__concurrence_unlock_errorE"); -+asm (".hidden _ZTVN9__gnu_cxx24__concurrence_lock_errorE"); -+asm (".hidden _ZTVN9__gnu_cxx26__concurrence_unlock_errorE"); -+asm (".hidden _ZTSSt19_Sp_make_shared_tag"); -+asm (".hidden _ZN9__gnu_cxx32__throw_concurrence_unlock_errorEv"); -diff --git a/libstdc++-v3/src/nonshared11/shared_ptr80.cc b/libstdc++-v3/src/nonshared11/shared_ptr80.cc -new file mode 100644 -index 000000000..d5b0c4d1e ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/shared_ptr80.cc -@@ -0,0 +1,25 @@ -+// Copyright (C) 2012-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_NONSHARED_CXX11_80 -+#include "../c++11/shared_ptr.cc" -+//asm (".hidden _ZTSSt19_Sp_make_shared_tag"); -diff --git a/libstdc++-v3/src/nonshared11/snprintf_lite.cc b/libstdc++-v3/src/nonshared11/snprintf_lite.cc -new file mode 100644 -index 000000000..2aa22d1ea ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/snprintf_lite.cc -@@ -0,0 +1,40 @@ -+// Copyright (C) 2014-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include "../c++11/snprintf_lite.cc" -+#ifdef __powerpc64__ -+asm (".hidden _ZN9__gnu_cxx15__concat_size_tEPcmm"); -+//asm (".hidden _ZN9__gnu_cxx15__snprintf_liteEPcmPKcS0_"); -+#elif defined(__i386__) -+//asm (".hidden _ZN9__gnu_cxx15__concat_size_tEPcjj"); -+//asm (".hidden _ZN9__gnu_cxx15__snprintf_liteEPcjPKcS0_"); -+#elif defined(__powerpc__) -+//asm (".hidden _ZN9__gnu_cxx15__concat_size_tEPcjj"); -+//asm (".hidden _ZN9__gnu_cxx15__snprintf_liteEPcjPKcP13__va_list_tag"); -+#elif defined(__aarch64__) -+asm (".hidden _ZN9__gnu_cxx15__concat_size_tEPcmm"); -+//asm (".hidden _ZN9__gnu_cxx15__snprintf_liteEPcmPKcSt9__va_list"); -+#else -+asm (".hidden _ZN9__gnu_cxx15__concat_size_tEPcmm"); -+asm (".hidden _ZN9__gnu_cxx15__snprintf_liteEPcmPKcP13__va_list_tag"); -+#endif -+asm (".hidden _ZN9__gnu_cxx26__throw_insufficient_spaceEPKcS1_"); -diff --git a/libstdc++-v3/src/nonshared11/sso_string.cc b/libstdc++-v3/src/nonshared11/sso_string.cc -new file mode 100644 -index 000000000..2d1476670 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/sso_string.cc -@@ -0,0 +1,48 @@ -+// wide string support -*- C++ -*- -+ -+// Copyright (C) 2014-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+// -+// ISO C++ 14882: 21 Strings library -+// -+ -+#include "../c++11/sso_string.cc" -+asm (".hidden _ZNSt12__sso_stringC1EOS_"); -+asm (".hidden _ZNSt12__sso_stringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"); -+asm (".hidden _ZNSt12__sso_stringC1ERKS_"); -+asm (".hidden _ZNSt12__sso_stringC1Ev"); -+asm (".hidden _ZNSt12__sso_stringC2EOS_"); -+asm (".hidden _ZNSt12__sso_stringC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"); -+asm (".hidden _ZNSt12__sso_stringC2ERKS_"); -+asm (".hidden _ZNSt12__sso_stringC2Ev"); -+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__)) -+//asm (".hidden _ZNSt12__sso_stringC1EPKcj"); -+//asm (".hidden _ZNSt12__sso_stringC2EPKcj"); -+#else -+asm (".hidden _ZNSt12__sso_stringC1EPKcm"); -+asm (".hidden _ZNSt12__sso_stringC2EPKcm"); -+#endif -diff --git a/libstdc++-v3/src/nonshared11/sstream-inst.cc b/libstdc++-v3/src/nonshared11/sstream-inst.cc -new file mode 100644 -index 000000000..f5fd0efb6 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/sstream-inst.cc -@@ -0,0 +1,25 @@ -+// Copyright (C) 2012-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include "../c++11/sstream-inst.cc" -+asm (".hidden _ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE12_M_high_markEv"); -+asm (".hidden _ZNKSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEE12_M_high_markEv"); -diff --git a/libstdc++-v3/src/nonshared11/sstream-inst80.cc b/libstdc++-v3/src/nonshared11/sstream-inst80.cc -new file mode 100644 -index 000000000..574f86d59 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/sstream-inst80.cc -@@ -0,0 +1,55 @@ -+// Explicit instantiation file. -+ -+// Copyright (C) 2014-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+// -+// ISO C++ 14882: -+// -+ -+#define _GLIBCXX_USE_CXX11_ABI 1 -+#include -+ -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+_GLIBCXX_BEGIN_NAMESPACE_VERSION -+ -+ template basic_stringbuf::basic_stringbuf(); -+ template basic_istringstream::basic_istringstream(); -+ template basic_ostringstream::basic_ostringstream(); -+ template basic_stringstream::basic_stringstream(); -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template basic_stringbuf::basic_stringbuf(); -+ template basic_istringstream::basic_istringstream(); -+ template basic_ostringstream::basic_ostringstream(); -+ template basic_stringstream::basic_stringstream(); -+#endif -+ -+_GLIBCXX_END_NAMESPACE_VERSION -+} // namespace -+ -+asm (".hidden _ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED0Ev"); -+asm (".hidden _ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED1Ev"); -+asm (".hidden _ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED2Ev"); -+asm (".hidden _ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEED0Ev"); -+asm (".hidden _ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEED1Ev"); -+asm (".hidden _ZNSt7__cxx1115basic_stringbufIwSt11char_traitsIwESaIwEED2Ev"); -diff --git a/libstdc++-v3/src/nonshared11/streambuf-inst.cc b/libstdc++-v3/src/nonshared11/streambuf-inst.cc -new file mode 100644 -index 000000000..ea5f89a13 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/streambuf-inst.cc -@@ -0,0 +1,42 @@ -+// Explicit instantiation file. -+ -+// Copyright (C) 1997-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+// -+// ISO C++ 14882: -+// -+ -+#include -+ -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+_GLIBCXX_BEGIN_NAMESPACE_VERSION -+ -+ template void basic_streambuf::swap(basic_streambuf&); -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template void basic_streambuf::swap(basic_streambuf&); -+#endif -+ -+_GLIBCXX_END_NAMESPACE_VERSION -+} // namespace -diff --git a/libstdc++-v3/src/nonshared11/string-inst.cc b/libstdc++-v3/src/nonshared11/string-inst.cc -new file mode 100644 -index 000000000..fc248e295 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/string-inst.cc -@@ -0,0 +1,36 @@ -+// Components for manipulating sequences of characters -*- C++ -*- -+ -+// Copyright (C) 1997-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+// -+// ISO C++ 14882: 21 Strings library -+// -+ -+// Written by Jason Merrill based upon the specification by Takanori Adachi -+// in ANSI X3J16/94-0013R2. Rewritten by Nathan Myers. -+ -+#include "../c++11/string-inst.cc" -+asm (".hidden _ZN9__gnu_cxxeqIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEbRKNS_17__normal_iteratorIT_T0_EESE_"); -+asm (".hidden _ZN9__gnu_cxxeqIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEbRKNS_17__normal_iteratorIT_T0_EESD_"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17_M_use_local_dataEv"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_S_allocateERS3_m"); -diff --git a/libstdc++-v3/src/nonshared11/string-inst110.cc b/libstdc++-v3/src/nonshared11/string-inst110.cc -new file mode 100644 -index 000000000..6b5365bb4 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/string-inst110.cc -@@ -0,0 +1,26 @@ -+// Components for manipulating sequences of characters -*- C++ -*- -+ -+// Copyright (C) 1997-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_NONSHARED_CXX11_110 -+#include "string-inst80.cc" -diff --git a/libstdc++-v3/src/nonshared11/string-inst80.cc b/libstdc++-v3/src/nonshared11/string-inst80.cc -new file mode 100644 -index 000000000..4e0fa8390 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/string-inst80.cc -@@ -0,0 +1,65 @@ -+// Components for manipulating sequences of characters -*- C++ -*- -+ -+// Copyright (C) 1997-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+// -+// ISO C++ 14882: 21 Strings library -+// -+ -+// Written by Jason Merrill based upon the specification by Takanori Adachi -+// in ANSI X3J16/94-0013R2. Rewritten by Nathan Myers. -+ -+#ifndef _GLIBCXX_USE_CXX11_ABI -+// Instantiations in this file use the new SSO std::string ABI unless included -+// by another file which defines _GLIBCXX_USE_CXX11_ABI=0. -+# define _GLIBCXX_USE_CXX11_ABI 1 -+#endif -+ -+#include -+ -+// Instantiation configuration. -+#ifndef C -+# define C char -+#endif -+ -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+_GLIBCXX_BEGIN_NAMESPACE_VERSION -+ -+ typedef basic_string S; -+ -+#ifndef _GLIBCXX_NONSHARED_CXX11_110 -+ template -+ S::iterator -+ S::insert(S::const_iterator, initializer_list); -+ -+ template -+ void S::reserve(); -+#endif -+ -+ template -+ void S::_M_replace_cold(S::pointer, size_type, const C*, const size_type, -+ const size_type); -+ -+_GLIBCXX_END_NAMESPACE_VERSION -+} // namespace -diff --git a/libstdc++-v3/src/nonshared11/string-io-inst.cc b/libstdc++-v3/src/nonshared11/string-io-inst.cc -new file mode 100644 -index 000000000..f4aa629d2 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/string-io-inst.cc -@@ -0,0 +1,58 @@ -+// SSO string instantiations for I/O -*- C++ -*- -+ -+// Copyright (C) 1997-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+// -+// ISO C++ 14882: 21 Strings library -+// -+ -+#ifndef C -+# define _GLIBCXX_USE_CXX11_ABI 1 -+# define C char -+# define NARROW -+#endif -+#include -+#include -+ -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+ // string related to iostreams. -+ typedef basic_istream I; -+ typedef basic_ostream O; -+ typedef basic_string S; -+ -+#ifndef NARROW -+ template -+ I& operator>>(I&, S&); -+#endif -+ -+ template -+ O& operator<<(O&, const S&); -+ -+ template -+ I& getline(I&, S&); -+} -+ -+#ifdef NARROW -+asm (".hidden _ZNKSt5ctypeIcE8do_widenEc"); -+#endif -diff --git a/libstdc++-v3/src/nonshared11/system_error48.cc b/libstdc++-v3/src/nonshared11/system_error48.cc -new file mode 100644 -index 000000000..719808747 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/system_error48.cc -@@ -0,0 +1,28 @@ -+// implementation file -+ -+// Copyright (C) 2007-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_NONSHARED_CXX11 -+#include "../c++11/system_error.cc" -+asm (".hidden _ZTSNSt3_V214error_categoryE"); -+asm (".hidden _ZSt20__throw_system_errori"); -diff --git a/libstdc++-v3/src/nonshared11/thread48.cc b/libstdc++-v3/src/nonshared11/thread48.cc -new file mode 100644 -index 000000000..8ad19e13c ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/thread48.cc -@@ -0,0 +1,30 @@ -+// Copyright (C) 2008-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_NONSHARED_CXX11_48 -+#include "../c++11/thread.cc" -+asm (".hidden _ZNSt15_Sp_counted_ptrIDnLN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv"); -+asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv"); -+asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv"); -+asm (".hidden _ZNSt6thread4joinEv"); -+asm (".hidden _ZNSt6thread6detachEv"); -+asm (".hidden _ZNSt6thread15_M_start_threadESt10shared_ptrINS_10_Impl_baseEE"); -diff --git a/libstdc++-v3/src/nonshared11/wlocale-inst.cc b/libstdc++-v3/src/nonshared11/wlocale-inst.cc -new file mode 100644 -index 000000000..ccb5eca9c ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/wlocale-inst.cc -@@ -0,0 +1,37 @@ -+// Locale support -*- C++ -*- -+ -+// Copyright (C) 1999-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+// -+// ISO C++ 14882: 22.1 Locales -+// -+ -+// Instantiate locales using COW std::wstring ABI -+#define _GLIBCXX_USE_CXX11_ABI 0 -+#include -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+#define C wchar_t -+#include "locale-inst.cc" -+#endif -+asm (".hidden _ZSt14__add_groupingIwEPT_S1_S0_PKcmPKS0_S5_"); -diff --git a/libstdc++-v3/src/nonshared11/wlocale-inst110.cc b/libstdc++-v3/src/nonshared11/wlocale-inst110.cc -new file mode 100644 -index 000000000..6c200978c ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/wlocale-inst110.cc -@@ -0,0 +1,31 @@ -+// Copyright (C) 1999-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+// Instantiate locales using COW std::wstring ABI -+#define _GLIBCXX_USE_CXX11_ABI 0 -+#include -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+#define C wchar_t -+#define _GLIBCXX_NONSHARED_CXX11_110 -+#include "locale-inst.cc" -+#endif -diff --git a/libstdc++-v3/src/nonshared11/wlocale-inst80.cc b/libstdc++-v3/src/nonshared11/wlocale-inst80.cc -new file mode 100644 -index 000000000..79d879911 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/wlocale-inst80.cc -@@ -0,0 +1,31 @@ -+// Copyright (C) 1999-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+// Instantiate locales using COW std::wstring ABI -+#define _GLIBCXX_USE_CXX11_ABI 0 -+#include -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+#define C wchar_t -+#define _GLIBCXX_NONSHARED_CXX11_80 -+#include "locale-inst.cc" -+#endif -diff --git a/libstdc++-v3/src/nonshared11/wstring-inst.cc b/libstdc++-v3/src/nonshared11/wstring-inst.cc -new file mode 100644 -index 000000000..b3c8b7a36 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/wstring-inst.cc -@@ -0,0 +1,33 @@ -+// wide string support -*- C++ -*- -+ -+// Copyright (C) 1999-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+// -+// ISO C++ 14882: 21 Strings library -+// -+ -+#include "../c++11/wstring-inst.cc" -+asm (".hidden _ZN9__gnu_cxxeqIPKwNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEEEbRKNS_17__normal_iteratorIT_T0_EESE_"); -+asm (".hidden _ZN9__gnu_cxxeqIPwNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEEEbRKNS_17__normal_iteratorIT_T0_EESD_"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17_M_use_local_dataEv"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE11_S_allocateERS3_m"); -diff --git a/libstdc++-v3/src/nonshared11/wstring-inst110.cc b/libstdc++-v3/src/nonshared11/wstring-inst110.cc -new file mode 100644 -index 000000000..8c2797167 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/wstring-inst110.cc -@@ -0,0 +1,26 @@ -+// Components for manipulating sequences of characters -*- C++ -*- -+ -+// Copyright (C) 1997-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_NONSHARED_CXX11_110 -+#include "wstring-inst80.cc" -diff --git a/libstdc++-v3/src/nonshared11/wstring-inst80.cc b/libstdc++-v3/src/nonshared11/wstring-inst80.cc -new file mode 100644 -index 000000000..163259625 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/wstring-inst80.cc -@@ -0,0 +1,29 @@ -+// Copyright (C) 1999-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_USE_CXX11_ABI 1 -+#include -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+#define C wchar_t -+#include "string-inst80.cc" -+#endif -diff --git a/libstdc++-v3/src/nonshared11/wstring-io-inst.cc b/libstdc++-v3/src/nonshared11/wstring-io-inst.cc -new file mode 100644 -index 000000000..75b666dbd ---- /dev/null -+++ b/libstdc++-v3/src/nonshared11/wstring-io-inst.cc -@@ -0,0 +1,35 @@ -+// SSO string instantiations for I/O -*- C++ -*- -+ -+// Copyright (C) 2014-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+// -+// ISO C++ 14882: 21 Strings library -+// -+ -+#define _GLIBCXX_USE_CXX11_ABI 1 -+#include -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+#define C wchar_t -+#include "string-io-inst.cc" -+#endif -diff --git a/libstdc++-v3/src/nonshared17/Makefile.am b/libstdc++-v3/src/nonshared17/Makefile.am -new file mode 100644 -index 000000000..1638f60d4 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared17/Makefile.am -@@ -0,0 +1,148 @@ -+## Makefile for the C++17 sources of the GNU C++ Standard library. -+## -+## Copyright (C) 1997-2023 Free Software Foundation, Inc. -+## -+## This file is part of the libstdc++ version 3 distribution. -+## Process this file with automake to produce Makefile.in. -+ -+## 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 -+## . -+ -+include $(top_srcdir)/fragment.am -+ -+# Convenience library for C++17 runtime. -+noinst_LTLIBRARIES = libnonshared17convenience48.la \ -+ libnonshared17convenience80.la \ -+ libnonshared17convenience110.la -+ -+headers = -+ -+if ENABLE_DUAL_ABI -+extra_string_inst_sources = cow-string-inst.cc -+extra_string_inst_sources110 = cow-string-inst110.cc -+extra_fs_sources = \ -+ cow-fs_dir.cc \ -+ cow-fs_ops.cc \ -+ cow-fs_path.cc -+extra_fs_sources110 = \ -+ cow-fs_dir110.cc -+else -+extra_string_inst_sources = -+extra_string_inst_sources110 = -+extra_fs_sources = -+extra_fs_sources110 = -+endif -+ -+if ENABLE_EXTERN_TEMPLATE -+# XTEMPLATE_FLAGS = -fno-implicit-templates -+inst_sources = \ -+ ostream-inst.cc \ -+ string-inst.cc \ -+ $(extra_string_inst_sources) -+inst_sources110 = \ -+ ostream-inst110.cc \ -+ string-inst110.cc \ -+ $(extra_string_inst_sources110) -+else -+# XTEMPLATE_FLAGS = -+inst_sources = -+inst_sources110 = -+endif -+ -+sources = \ -+ floating_from_chars.cc \ -+ floating_to_chars.cc \ -+ fs_dir.cc \ -+ memory_resource.cc \ -+ $(extra_fs_sources) -+sources48 = \ -+ fs_path.cc \ -+ fs_ops.cc -+sources80 = \ -+ fs_path80.cc \ -+ fs_ops80.cc -+sources110 = \ -+ fs_dir110.cc \ -+ floating_from_chars110.cc \ -+ floating_to_chars110.cc \ -+ $(extra_fs_sources110) -+ -+vpath % $(top_srcdir)/src/nonshared17 -+ -+libnonshared17convenience48_la_SOURCES = $(sources) $(sources48) $(inst_sources) -+libnonshared17convenience80_la_SOURCES = $(sources) $(sources80) $(inst_sources) -+libnonshared17convenience110_la_SOURCES = $(sources110) $(inst_sources110) -+ -+# AM_CXXFLAGS needs to be in each subdirectory so that it can be -+# modified in a per-library or per-sub-library way. Need to manually -+# set this option because CONFIG_CXXFLAGS has to be after -+# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden -+# as the occasion calls for it. -+AM_CXXFLAGS = \ -+ -std=gnu++17 \ -+ $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \ -+ $(XTEMPLATE_FLAGS) $(VTV_CXXFLAGS) \ -+ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) \ -+ -fimplicit-templates -+ -+AM_MAKEFLAGS = \ -+ "gxx_include_dir=$(gxx_include_dir)" -+ -+# Libtool notes -+ -+# 1) In general, libtool expects an argument such as `--tag=CXX' when -+# using the C++ compiler, because that will enable the settings -+# detected when C++ support was being configured. However, when no -+# such flag is given in the command line, libtool attempts to figure -+# it out by matching the compiler name in each configuration section -+# against a prefix of the command line. The problem is that, if the -+# compiler name and its initial flags stored in the libtool -+# configuration file don't match those in the command line, libtool -+# can't decide which configuration to use, and it gives up. The -+# correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe -+# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to -+# attempt to infer which configuration to use. -+# -+# The second tag argument, `--tag disable-shared` means that libtool -+# only compiles each source once, for static objects. In actuality, -+# glibcxx_lt_pic_flag and glibcxx_compiler_shared_flag are added to -+# the libtool command that is used create the object, which is -+# suitable for shared libraries. The `--tag disable-shared` must be -+# placed after --tag CXX lest things CXX undo the affect of -+# disable-shared. -+ -+# 2) Need to explicitly set LTCXXCOMPILE so that EXTRA_CXX_FLAGS is -+# last. (That way, things like -O2 passed down from the toplevel can -+# be overridden by --enable-debug.) -+LTCXXCOMPILE = \ -+ $(LIBTOOL) --tag CXX --tag disable-shared \ -+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ -+ --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \ -+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(EXTRA_CXX_FLAGS) -+ -+LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) -+ -+# 3) We'd have a problem when building the shared libstdc++ object if -+# the rules automake generates would be used. We cannot allow g++ to -+# be used since this would add -lstdc++ to the link line which of -+# course is problematic at this point. So, we get the top-level -+# directory to configure libstdc++-v3 to use gcc as the C++ -+# compilation driver. -+CXXLINK = \ -+ $(LIBTOOL) --tag CXX --tag disable-shared \ -+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ -+ --mode=link $(CXX) \ -+ $(VTV_CXXLINKFLAGS) \ -+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ -diff --git a/libstdc++-v3/src/nonshared17/Makefile.in b/libstdc++-v3/src/nonshared17/Makefile.in -new file mode 100644 -index 000000000..1cf4e8d20 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared17/Makefile.in -@@ -0,0 +1,830 @@ -+# Makefile.in generated by automake 1.15.1 from Makefile.am. -+# @configure_input@ -+ -+# Copyright (C) 1994-2017 Free Software Foundation, Inc. -+ -+# This Makefile.in is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -+# PARTICULAR PURPOSE. -+ -+@SET_MAKE@ ++@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ @@ -7467,8 +3802,9 @@ index 000000000..1cf4e8d20 +LTLIBRARIES = $(noinst_LTLIBRARIES) +libnonshared17convenience110_la_LIBADD = +@ENABLE_DUAL_ABI_TRUE@am__objects_1 = cow-fs_dir110.lo -+am__objects_2 = fs_dir110.lo floating_from_chars110.lo \ -+ floating_to_chars110.lo $(am__objects_1) ++am__objects_2 = eh_call.lo eh_terminate.lo fs_dir110.lo \ ++ floating_from_chars110.lo floating_to_chars110.lo \ ++ $(am__objects_1) +@ENABLE_DUAL_ABI_TRUE@am__objects_3 = cow-string-inst110.lo +@ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_4 = ostream-inst110.lo \ +@ENABLE_EXTERN_TEMPLATE_TRUE@ string-inst110.lo \ @@ -7481,23 +3817,17 @@ index 000000000..1cf4e8d20 +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = -+libnonshared17convenience48_la_LIBADD = ++libnonshared17convenience80_la_LIBADD = +@ENABLE_DUAL_ABI_TRUE@am__objects_5 = cow-fs_dir.lo cow-fs_ops.lo \ +@ENABLE_DUAL_ABI_TRUE@ cow-fs_path.lo -+am__objects_6 = floating_from_chars.lo floating_to_chars.lo fs_dir.lo \ -+ memory_resource.lo $(am__objects_5) -+am__objects_7 = fs_path.lo fs_ops.lo -+@ENABLE_DUAL_ABI_TRUE@am__objects_8 = cow-string-inst.lo -+@ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_9 = ostream-inst.lo \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ string-inst.lo $(am__objects_8) -+am_libnonshared17convenience48_la_OBJECTS = $(am__objects_6) \ -+ $(am__objects_7) $(am__objects_9) -+libnonshared17convenience48_la_OBJECTS = \ -+ $(am_libnonshared17convenience48_la_OBJECTS) -+libnonshared17convenience80_la_LIBADD = -+am__objects_10 = fs_path80.lo fs_ops80.lo ++am__objects_6 = eh_call.lo eh_terminate.lo floating_from_chars.lo \ ++ floating_to_chars.lo fs_dir.lo memory_resource.lo fs_path80.lo \ ++ fs_ops80.lo $(am__objects_5) ++@ENABLE_DUAL_ABI_TRUE@am__objects_7 = cow-string-inst.lo ++@ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_8 = ostream-inst.lo \ ++@ENABLE_EXTERN_TEMPLATE_TRUE@ string-inst.lo $(am__objects_7) +am_libnonshared17convenience80_la_OBJECTS = $(am__objects_6) \ -+ $(am__objects_10) $(am__objects_9) ++ $(am__objects_8) +libnonshared17convenience80_la_OBJECTS = \ + $(am_libnonshared17convenience80_la_OBJECTS) +AM_V_P = $(am__v_P_@AM_V@) @@ -7527,7 +3857,6 @@ index 000000000..1cf4e8d20 +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +SOURCES = $(libnonshared17convenience110_la_SOURCES) \ -+ $(libnonshared17convenience48_la_SOURCES) \ + $(libnonshared17convenience80_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ @@ -7797,17 +4126,16 @@ index 000000000..1cf4e8d20 +AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS) + +# Convenience library for C++17 runtime. -+noinst_LTLIBRARIES = libnonshared17convenience48.la \ -+ libnonshared17convenience80.la \ ++noinst_LTLIBRARIES = libnonshared17convenience80.la \ + libnonshared17convenience110.la + +headers = -+@ENABLE_DUAL_ABI_FALSE@extra_string_inst_sources = -+@ENABLE_DUAL_ABI_TRUE@extra_string_inst_sources = cow-string-inst.cc ++@ENABLE_DUAL_ABI_FALSE@extra_string_inst_sources80 = ++@ENABLE_DUAL_ABI_TRUE@extra_string_inst_sources80 = cow-string-inst.cc +@ENABLE_DUAL_ABI_FALSE@extra_string_inst_sources110 = +@ENABLE_DUAL_ABI_TRUE@extra_string_inst_sources110 = cow-string-inst110.cc -+@ENABLE_DUAL_ABI_FALSE@extra_fs_sources = -+@ENABLE_DUAL_ABI_TRUE@extra_fs_sources = \ ++@ENABLE_DUAL_ABI_FALSE@extra_fs_sources80 = ++@ENABLE_DUAL_ABI_TRUE@extra_fs_sources80 = \ +@ENABLE_DUAL_ABI_TRUE@ cow-fs_dir.cc \ +@ENABLE_DUAL_ABI_TRUE@ cow-fs_ops.cc \ +@ENABLE_DUAL_ABI_TRUE@ cow-fs_path.cc @@ -7817,13 +4145,13 @@ index 000000000..1cf4e8d20 +@ENABLE_DUAL_ABI_TRUE@ cow-fs_dir110.cc + +# XTEMPLATE_FLAGS = -+@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources = ++@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources80 = + +# XTEMPLATE_FLAGS = -fno-implicit-templates -+@ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources = \ ++@ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources80 = \ +@ENABLE_EXTERN_TEMPLATE_TRUE@ ostream-inst.cc \ +@ENABLE_EXTERN_TEMPLATE_TRUE@ string-inst.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ $(extra_string_inst_sources) ++@ENABLE_EXTERN_TEMPLATE_TRUE@ $(extra_string_inst_sources80) + +@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources110 = +@ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources110 = \ @@ -7831,29 +4159,26 @@ index 000000000..1cf4e8d20 +@ENABLE_EXTERN_TEMPLATE_TRUE@ string-inst110.cc \ +@ENABLE_EXTERN_TEMPLATE_TRUE@ $(extra_string_inst_sources110) + -+sources = \ ++sources80 = \ ++ eh_call.cc \ ++ eh_terminate.cc \ + floating_from_chars.cc \ + floating_to_chars.cc \ + fs_dir.cc \ + memory_resource.cc \ -+ $(extra_fs_sources) -+ -+sources48 = \ -+ fs_path.cc \ -+ fs_ops.cc -+ -+sources80 = \ + fs_path80.cc \ -+ fs_ops80.cc ++ fs_ops80.cc \ ++ $(extra_fs_sources80) + +sources110 = \ ++ eh_call.cc \ ++ eh_terminate.cc \ + fs_dir110.cc \ + floating_from_chars110.cc \ + floating_to_chars110.cc \ + $(extra_fs_sources110) + -+libnonshared17convenience48_la_SOURCES = $(sources) $(sources48) $(inst_sources) -+libnonshared17convenience80_la_SOURCES = $(sources) $(sources80) $(inst_sources) ++libnonshared17convenience80_la_SOURCES = $(sources80) $(inst_sources80) +libnonshared17convenience110_la_SOURCES = $(sources110) $(inst_sources110) + +# AM_CXXFLAGS needs to be in each subdirectory so that it can be @@ -7968,9 +4293,6 @@ index 000000000..1cf4e8d20 +libnonshared17convenience110.la: $(libnonshared17convenience110_la_OBJECTS) $(libnonshared17convenience110_la_DEPENDENCIES) $(EXTRA_libnonshared17convenience110_la_DEPENDENCIES) + $(AM_V_CXXLD)$(CXXLINK) $(libnonshared17convenience110_la_OBJECTS) $(libnonshared17convenience110_la_LIBADD) $(LIBS) + -+libnonshared17convenience48.la: $(libnonshared17convenience48_la_OBJECTS) $(libnonshared17convenience48_la_DEPENDENCIES) $(EXTRA_libnonshared17convenience48_la_DEPENDENCIES) -+ $(AM_V_CXXLD)$(CXXLINK) $(libnonshared17convenience48_la_OBJECTS) $(libnonshared17convenience48_la_LIBADD) $(LIBS) -+ +libnonshared17convenience80.la: $(libnonshared17convenience80_la_OBJECTS) $(libnonshared17convenience80_la_DEPENDENCIES) $(EXTRA_libnonshared17convenience80_la_DEPENDENCIES) + $(AM_V_CXXLD)$(CXXLINK) $(libnonshared17convenience80_la_OBJECTS) $(libnonshared17convenience80_la_LIBADD) $(LIBS) + @@ -8175,11 +4497,11 @@ index 000000000..1cf4e8d20 +.NOEXPORT: diff --git a/libstdc++-v3/src/nonshared17/cow-fs_dir.cc b/libstdc++-v3/src/nonshared17/cow-fs_dir.cc new file mode 100644 -index 000000000..964a9dd7e +index 000000000..1af9c4b97 --- /dev/null +++ b/libstdc++-v3/src/nonshared17/cow-fs_dir.cc -@@ -0,0 +1,109 @@ -+// Copyright (C) 2019-2023 Free Software Foundation, Inc. +@@ -0,0 +1,103 @@ ++// Copyright (C) 2019-2024 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 @@ -8270,11 +4592,9 @@ index 000000000..964a9dd7e +//asm (".hidden _ZNSt5dequeINSt10filesystem4_DirESaIS1_EE17_M_reallocate_mapEmb"); +asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv"); +#endif -+#ifndef __powerpc64__ -+asm (".hidden _ZNSt10unique_ptrINSt10filesystem4path5_List5_ImplENS2_13_Impl_deleterEED1Ev"); -+asm (".hidden _ZNSt10unique_ptrINSt10filesystem4path5_List5_ImplENS2_13_Impl_deleterEED2Ev"); -+#endif +#ifdef __i386__ ++asm (".hidden _ZNSt10filesystem4pathD1Ev"); ++asm (".hidden _ZNSt10filesystem4pathD2Ev"); +//asm (".hidden _ZNSt5dequeINSt10filesystem4_DirESaIS1_EE17_M_reallocate_mapEjb"); +#endif +//asm (".hidden _ZNKSt10filesystem4_Dir11open_subdirEbbRSt10error_code"); @@ -8283,10 +4603,6 @@ index 000000000..964a9dd7e +//asm (".hidden _ZNSt10filesystem4pathC1ISsS0_EERKT_NS0_6formatE"); +asm (".hidden _ZNSt10filesystem28recursive_directory_iterator7__eraseEPSt10error_code"); +//asm (".hidden _ZNKSt10filesystem4_Dir16dir_and_pathnameEv"); -+#if defined(__x86_64__) || defined(__aarch64__) || defined(__powerpc64__) -+asm (".hidden _ZNSt10filesystem4pathD1Ev"); -+asm (".hidden _ZNSt10filesystem4pathD2Ev"); -+#endif +asm (".hidden _ZNKSt10filesystem4_Dir7currentEv"); diff --git a/libstdc++-v3/src/nonshared17/cow-fs_dir110.cc b/libstdc++-v3/src/nonshared17/cow-fs_dir110.cc new file mode 100644 @@ -8322,11 +4638,11 @@ index 000000000..f12a8bf95 +#include "fs_dir110.cc" diff --git a/libstdc++-v3/src/nonshared17/cow-fs_ops.cc b/libstdc++-v3/src/nonshared17/cow-fs_ops.cc new file mode 100644 -index 000000000..0155b4ae7 +index 000000000..775f18db5 --- /dev/null +++ b/libstdc++-v3/src/nonshared17/cow-fs_ops.cc -@@ -0,0 +1,83 @@ -+// Copyright (C) 2019-2023 Free Software Foundation, Inc. +@@ -0,0 +1,81 @@ ++// Copyright (C) 2019-2024 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 @@ -8366,17 +4682,17 @@ index 000000000..0155b4ae7 +asm (".hidden _ZNSsC1ISaIcEEEPKcRKS0_"); +asm (".hidden _ZNSsC2ISaIcEEEPKcRKS0_"); +#ifndef __i386__ ++//asm (".hidden _ZNSs9_M_mutateEmmm"); +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"); +asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE23_M_new_elements_at_backEm"); +asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE24_M_new_elements_at_frontEm"); ++//asm (".hidden _ZNSs6resizeEmc"); ++//asm (".hidden _ZNSt10filesystem4pathD1Ev"); ++//asm (".hidden _ZNSt10filesystem4pathD2Ev"); +asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv"); -+asm (".hidden _ZNSs9_M_mutateEmmm"); -+asm (".hidden _ZNSs6resizeEmc"); +#endif -+asm (".hidden _ZNSt10filesystem4pathD2Ev"); -+asm (".hidden _ZNSt10filesystem4pathD1Ev"); +#if defined(__x86_64__) +//asm (".hidden _ZSt13move_backwardISt15_Deque_iteratorINSt10filesystem4pathERS2_PS2_ES5_ET0_T_S7_S6_"); +//asm (".hidden _ZSt4moveISt15_Deque_iteratorINSt10filesystem4pathERS2_PS2_ES5_ET0_T_S7_S6_"); @@ -8393,29 +4709,27 @@ index 000000000..0155b4ae7 +//asm (".hidden _ZSt4moveISt15_Deque_iteratorINSt10filesystem4pathERS2_PS2_ES5_ET0_T_S7_S6_"); +#endif +#if defined(__s390x__) -+asm (".hidden _ZNSs4swapERSs"); +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 +#ifdef __aarch64__ -+asm (".hidden _ZNSs4swapERSs"); +//asm (".hidden _ZSt4copyINSt10filesystem4path8iteratorESt15_Deque_iteratorIS1_RS1_PS1_EET0_T_S8_S7_"); +//asm (".hidden _ZSt13move_backwardISt15_Deque_iteratorINSt10filesystem4pathERS2_PS2_ES5_ET0_T_S7_S6_"); +//asm (".hidden _ZSt4moveISt15_Deque_iteratorINSt10filesystem4pathERS2_PS2_ES5_ET0_T_S7_S6_"); +#endif +asm (".hidden _ZNKSt10filesystem4path8filenameEv"); +#ifdef __powerpc64__ -+asm (".hidden _ZSt16__do_uninit_copyINSt10filesystem4path8iteratorESt15_Deque_iteratorIS1_RS1_PS1_EET0_T_S8_S7_"); ++//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_"); -+//asm (".hidden _ZNSs4swapERSs"); +#endif ++asm (".hidden _ZNSs4swapERSs"); diff --git a/libstdc++-v3/src/nonshared17/cow-fs_path.cc b/libstdc++-v3/src/nonshared17/cow-fs_path.cc new file mode 100644 -index 000000000..1a53c411f +index 000000000..b22ac70da --- /dev/null +++ b/libstdc++-v3/src/nonshared17/cow-fs_path.cc -@@ -0,0 +1,128 @@ -+// Copyright (C) 2019-2023 Free Software Foundation, Inc. +@@ -0,0 +1,131 @@ ++// Copyright (C) 2019-2024 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 @@ -8495,28 +4809,29 @@ index 000000000..1a53c411f +//asm (".hidden _ZZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_EN5_UCvtD1Ev"); +//asm (".hidden _ZZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_EN5_UCvtD2Ev"); +asm (".hidden _ZNKSt10filesystem4path5_List5_Impl4copyEv"); -+asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv"); -+asm (".hidden _ZNSs12_M_leak_hardEv"); -+asm (".hidden _ZNSs4swapERSs"); +//asm (".hidden _ZNSs6appendERKSs"); -+asm (".hidden _ZNSt10filesystem4path5_List5beginEv"); -+asm (".hidden _ZNSt10filesystem4path7_Parser4nextEv"); -+asm (".hidden _ZNSt10filesystem4pathD1Ev"); -+asm (".hidden _ZNSt10filesystem4pathD2Ev"); +#ifndef __i386__ ++asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv"); ++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 _ZNSs6insertEmPKcm"); -+asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEmmm"); -+//asm (".hidden _ZSt16__do_str_codecvtISswSt7codecvtIwc11__mbstate_tES1_MS2_KFNSt12codecvt_base6resultERS1_PKwS7_RS7_PcS9_RS9_EEbPKT0_SF_RT_RKT1_RT2_RmT3_"); -+asm (".hidden _ZNSsC2ERKSsmm"); +asm (".hidden _ZNSsC1ERKSsmm"); -+asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE7reserveEm"); -+asm (".hidden _ZNSs7reserveEm"); -+asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE6resizeEmw"); -+asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv"); ++asm (".hidden _ZNSsC2ERKSsmm"); ++asm (".hidden _ZNSt10filesystem4pathD2Ev"); +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_"); ++#endif ++asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv"); ++asm (".hidden _ZNSt10filesystem4path5_List5beginEv"); ++#ifndef __s390x__ ++asm (".hidden _ZNSt10filesystem4path7_Parser4nextEv"); +#endif ++asm (".hidden _ZNSt10filesystem4pathD1Ev"); ++asm (".hidden _ZNSs12_M_leak_hardEv"); +#ifdef __i386__ +asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE6resizeEjw"); +asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE7reserveEj"); @@ -8528,7 +4843,7 @@ index 000000000..1a53c411f +asm (".hidden _ZNSsC1ERKSsjj"); +asm (".hidden _ZNSsC2ERKSsjj"); +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 _ZSt16__do_str_codecvtISswSt7codecvtIwc11__mbstate_tES1_MS2_KFNSt12codecvt_base6resultERS1_PKwS7_RS7_PcS9_RS9_EEbPKT0_SF_RT_RKT1_RT2_RjT3_"); +#endif +asm (".hidden _ZNSt10filesystem4path8_CodecvtIwED0Ev"); +asm (".hidden _ZNSt10filesystem4path8_CodecvtIwED1Ev"); @@ -8543,6 +4858,8 @@ index 000000000..1a53c411f +asm (".hidden _ZTVNSt10filesystem4path8_CodecvtIwEE"); +asm (".hidden _ZTVSt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EE"); +//asm (".hidden _ZNSt12_Destroy_auxILb0EE9__destroyIPNSt10filesystem4path5_CmptEEEvT_S6_"); ++//asm (".hidden _ZNSt10filesystem4path5_CmptD1Ev"); ++//asm (".hidden _ZNSt10filesystem4path5_CmptD2Ev"); diff --git a/libstdc++-v3/src/nonshared17/cow-string-inst.cc b/libstdc++-v3/src/nonshared17/cow-string-inst.cc new file mode 100644 index 000000000..8c28b1249 @@ -8615,13 +4932,94 @@ index 000000000..26bb5d6ef +asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE17_S_to_string_viewESt17basic_string_viewIwS0_E"); +asm (".hidden _ZNKSbIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS0_EEv"); +asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE4dataEv"); +diff --git a/libstdc++-v3/src/nonshared17/eh_call.cc b/libstdc++-v3/src/nonshared17/eh_call.cc +new file mode 100644 +index 000000000..3c0092791 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared17/eh_call.cc +@@ -0,0 +1,23 @@ ++// Copyright (C) 2001-2024 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. ++ ++// Under Section 7 of GPL version 3, you are granted additional ++// permissions described in the GCC Runtime Library Exception, version ++// 3.1, as published by the Free Software Foundation. ++ ++// You should have received a copy of the GNU General Public License and ++// a copy of the GCC Runtime Library Exception along with this program; ++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ++// . ++ ++#include "../../libsupc++/eh_call.cc" +diff --git a/libstdc++-v3/src/nonshared17/eh_terminate.cc b/libstdc++-v3/src/nonshared17/eh_terminate.cc +new file mode 100644 +index 000000000..78c0da808 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared17/eh_terminate.cc +@@ -0,0 +1,46 @@ ++// -*- C++ -*- std::terminate, std::unexpected and friends. ++// Copyright (C) 1994-2024 Free Software Foundation, Inc. ++// ++// This file is part of GCC. ++// ++// GCC 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. ++// ++// GCC 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. ++// ++// Under Section 7 of GPL version 3, you are granted additional ++// permissions described in the GCC Runtime Library Exception, version ++// 3.1, as published by the Free Software Foundation. ++ ++// You should have received a copy of the GNU General Public License and ++// a copy of the GCC Runtime Library Exception along with this program; ++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ++// . ++ ++#include ++#include ++#include ++#include ++#include ++//#include ++ ++using namespace __cxxabiv1; ++ ++void ++__cxxabiv1::__terminate (std::terminate_handler handler) throw () ++{ ++ __try ++ { ++ handler (); ++ std::abort (); ++ } ++ __catch(...) ++ { std::abort (); } ++} ++ ++asm (".hidden _ZN10__cxxabiv111__terminateEPFvvE"); diff --git a/libstdc++-v3/src/nonshared17/floating_from_chars.cc b/libstdc++-v3/src/nonshared17/floating_from_chars.cc new file mode 100644 -index 000000000..1a9cf1e50 +index 000000000..b82540753 --- /dev/null +++ b/libstdc++-v3/src/nonshared17/floating_from_chars.cc -@@ -0,0 +1,45 @@ -+// Copyright (C) 2019-2023 Free Software Foundation, Inc. +@@ -0,0 +1,49 @@ ++// Copyright (C) 2019-2024 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 @@ -8645,6 +5043,8 @@ index 000000000..1a9cf1e50 + +#include "../c++17/floating_from_chars.cc" +#if defined(__i386__) || (defined(__powerpc__) && !defined(__powerpc64__)) ++//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE9_M_createERjj"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE9_M_mutateEjjPKcj"); +#else +//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE9_M_createERmm"); +asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE9_M_mutateEmmPKcm"); @@ -8655,24 +5055,26 @@ index 000000000..1a9cf1e50 +#if !defined(__i386__) +//asm (".hidden _ZSt10from_charsIiENSt9enable_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_EEE5valueESt17from_chars_resultE4typeEPKcSR_RS4_i"); +//asm (".hidden _ZSt10from_charsIiENSt9enable_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_EEE5valueESt17from_chars_resultE4typeEPKcSR_RS4_i"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE15_M_replace_coldEPcmPKcmm"); +#endif +//asm (".hidden _ZZNSt8__detail25__from_chars_alnum_to_valILb0EEEhhE7__table"); +#ifdef __i386__ -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE9_M_mutateEjjPKcj"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE9_M_createERjj"); ++//asm (".hidden _ZSt10from_charsIiENSt9enable_ifIXsrSt5__or_IIS1_IISt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xEEES1_IIS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yEEES2_IcS6_EEE5valueESt17from_chars_resultE4typeEPKcSP_RS4_i"); ++//asm (".hidden _ZSt10from_charsIiENSt9enable_ifIXsrSt5__or_IJS1_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yEEES2_IcS6_EEE5valueESt17from_chars_resultE4typeEPKcSP_RS4_i"); ++#endif ++#if defined(__i386__) || (defined(__powerpc__) && !defined(__powerpc64__)) +asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE15_M_replace_coldEPcjPKcjj"); -+asm (".hidden _ZSt10from_charsIiENSt9enable_ifIXsrSt5__or_IIS1_IISt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xEEES1_IIS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yEEES2_IcS6_EEE5valueESt17from_chars_resultE4typeEPKcSP_RS4_i"); -+asm (".hidden _ZSt10from_charsIiENSt9enable_ifIXsrSt5__or_IJS1_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yEEES2_IcS6_EEE5valueESt17from_chars_resultE4typeEPKcSP_RS4_i"); ++#else ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE15_M_replace_coldEPcmPKcmm"); +#endif +asm (".hidden _ZNSt8__detail31__from_chars_alnum_to_val_tableILb0EE5valueE"); ++asm (".hidden _ZSt10from_charsIiLi0EESt17from_chars_resultPKcS2_RT_i"); diff --git a/libstdc++-v3/src/nonshared17/floating_from_chars110.cc b/libstdc++-v3/src/nonshared17/floating_from_chars110.cc new file mode 100644 -index 000000000..d4b8fca1c +index 000000000..c687e0e3e --- /dev/null +++ b/libstdc++-v3/src/nonshared17/floating_from_chars110.cc -@@ -0,0 +1,34 @@ -+// Copyright (C) 2019-2023 Free Software Foundation, Inc. +@@ -0,0 +1,36 @@ ++// Copyright (C) 2019-2024 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 @@ -8696,23 +5098,25 @@ index 000000000..d4b8fca1c + +#define _GLIBCXX_NONSHARED_CXX11_110 +#include "../c++17/floating_from_chars.cc" -+asm (".hidden _ZSt10from_charsIiENSt9enable_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_EEE5valueESt17from_chars_resultE4typeEPKcSR_RS4_i"); -+asm (".hidden _ZSt10from_charsIiENSt9enable_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_EEE5valueESt17from_chars_resultE4typeEPKcSR_RS4_i"); -+#ifndef __s390x__ -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE9_M_createERmm"); -+#ifndef __i386__ ++//asm (".hidden _ZSt10from_charsIiENSt9enable_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_EEE5valueESt17from_chars_resultE4typeEPKcSR_RS4_i"); ++//asm (".hidden _ZSt10from_charsIiENSt9enable_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_EEE5valueESt17from_chars_resultE4typeEPKcSR_RS4_i"); ++//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE9_M_createERmm"); ++#if defined(__i386__) || (defined(__powerpc__) && !defined(__powerpc64__)) ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE15_M_replace_coldEPcjPKcjj"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE9_M_mutateEjjPKcj"); ++#else +asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE15_M_replace_coldEPcmPKcmm"); -+#endif -+#endif +asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE9_M_mutateEmmPKcm"); ++#endif +asm (".hidden _ZNSt8__detail31__from_chars_alnum_to_val_tableILb0EE5valueE"); ++asm (".hidden _ZSt10from_charsIiLi0EESt17from_chars_resultPKcS2_RT_i"); diff --git a/libstdc++-v3/src/nonshared17/floating_to_chars.cc b/libstdc++-v3/src/nonshared17/floating_to_chars.cc new file mode 100644 -index 000000000..02cab7eed +index 000000000..bcac9787a --- /dev/null +++ b/libstdc++-v3/src/nonshared17/floating_to_chars.cc -@@ -0,0 +1,93 @@ -+// Copyright (C) 2019-2023 Free Software Foundation, Inc. +@@ -0,0 +1,100 @@ ++// Copyright (C) 2019-2024 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 @@ -8761,6 +5165,9 @@ index 000000000..02cab7eed +//asm (".hidden _ZSt12__to_chars_iIjENSt9enable_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"); +//asm (".hidden _ZSt12__to_chars_iIjENSt9enable_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"); +#endif ++#if defined (__i386__) || defined (__s390x__) ++//asm (".hidden _ZNSt8__detail10__to_charsIjEESt15to_chars_resultPcS2_T_i"); ++#endif +#if defined (__powerpc64__) || defined (__s390x__) +//asm (".hidden _ZSt8to_charsPcS_g"); +//asm (".hidden _ZSt8to_charsPcS_gSt12chars_format"); @@ -8769,6 +5176,8 @@ index 000000000..02cab7eed +#if !defined (__powerpc64__) && !defined (__s390x__) +//asm (".hidden _ZNSt8__detail13__to_chars_16IoEENSt9enable_ifIXsrSt5__or_IIS2_IISt7is_sameINSt9remove_cvIT_E4typeEaES3_IS7_sES3_IS7_iES3_IS7_lES3_IS7_xES3_IS7_nEEES2_IIS3_IS7_hES3_IS7_tES3_IS7_jES3_IS7_mES3_IS7_yES3_IS7_oEEES3_IcS7_EEE5valueESt15to_chars_resultE4typeEPcSR_S5_"); +//asm (".hidden _ZNSt8__detail13__to_chars_16IoEENSt9enable_ifIXsrSt5__or_IJS2_IJSt7is_sameINSt9remove_cvIT_E4typeEaES3_IS7_sES3_IS7_iES3_IS7_lES3_IS7_xES3_IS7_nEEES2_IJS3_IS7_hES3_IS7_tES3_IS7_jES3_IS7_mES3_IS7_yES3_IS7_oEEES3_IcS7_EEE5valueESt15to_chars_resultE4typeEPcSR_S5_"); ++//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"); ++//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 _ZZNSt8__detail13__to_chars_16IoEENSt9enable_ifIXsrSt5__or_IIS2_IISt7is_sameINSt9remove_cvIT_E4typeEaES3_IS7_sES3_IS7_iES3_IS7_lES3_IS7_xES3_IS7_nEEES2_IIS3_IS7_hES3_IS7_tES3_IS7_jES3_IS7_mES3_IS7_yES3_IS7_oEEES3_IcS7_EEE5valueESt15to_chars_resultE4typeEPcSR_S5_E8__digits"); +//asm (".hidden _ZZNSt8__detail13__to_chars_16IoEENSt9enable_ifIXsrSt5__or_IJS2_IJSt7is_sameINSt9remove_cvIT_E4typeEaES3_IS7_sES3_IS7_iES3_IS7_lES3_IS7_xES3_IS7_nEEES2_IJS3_IS7_hES3_IS7_tES3_IS7_jES3_IS7_mES3_IS7_yES3_IS7_oEEES3_IcS7_EEE5valueESt15to_chars_resultE4typeEPcSR_S5_E8__digits"); +//asm (".hidden _ZZNSt8__detail10__to_charsIoEESt15to_chars_resultPcS2_T_iE8__digits"); @@ -8793,25 +5202,27 @@ index 000000000..02cab7eed +#endif +#endif +#if !defined(__i386__) -+asm (".hidden _ZNSt8__detail18__to_chars_10_implImEEvPcjT_"); -+//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_iIiENSt9enable_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"); +//asm (".hidden _ZSt12__to_chars_iIiENSt9enable_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 _ZZNSt8__detail13__to_chars_16IjEENSt9enable_ifIXsrSt5__or_IIS2_IISt7is_sameINSt9remove_cvIT_E4typeEaES3_IS7_sES3_IS7_iES3_IS7_lES3_IS7_xES3_IS7_nEEES2_IIS3_IS7_hES3_IS7_tES3_IS7_jES3_IS7_mES3_IS7_yES3_IS7_oEEES3_IcS7_EEE5valueESt15to_chars_resultE4typeEPcSR_S5_E8__digits"); +//asm (".hidden _ZZNSt8__detail13__to_chars_16IjEENSt9enable_ifIXsrSt5__or_IJS2_IJSt7is_sameINSt9remove_cvIT_E4typeEaES3_IS7_sES3_IS7_iES3_IS7_lES3_IS7_xES3_IS7_nEEES2_IJS3_IS7_hES3_IS7_tES3_IS7_jES3_IS7_mES3_IS7_yES3_IS7_oEEES3_IcS7_EEE5valueESt15to_chars_resultE4typeEPcSR_S5_E8__digits"); -+//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"); +#endif +//asm (".hidden _ZZNSt8__detail10__to_charsIjEESt15to_chars_resultPcS2_T_iE8__digits"); -+#if defined(__i386__) ++#if defined(__i386__) || (defined(__powerpc__) && !defined(__powerpc64__)) +asm (".hidden _ZNSt8__detail18__to_chars_10_implIyEEvPcjT_"); ++#else ++asm (".hidden _ZNSt8__detail18__to_chars_10_implImEEvPcjT_"); ++#endif ++#if !defined(__i386__) ++asm (".hidden _ZSt12__to_chars_iIoESt15to_chars_resultPcS1_T_i"); +#endif diff --git a/libstdc++-v3/src/nonshared17/floating_to_chars110.cc b/libstdc++-v3/src/nonshared17/floating_to_chars110.cc new file mode 100644 -index 000000000..939e40583 +index 000000000..ff2c57c5c --- /dev/null +++ b/libstdc++-v3/src/nonshared17/floating_to_chars110.cc -@@ -0,0 +1,27 @@ -+// Copyright (C) 2019-2023 Free Software Foundation, Inc. +@@ -0,0 +1,30 @@ ++// Copyright (C) 2019-2024 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 @@ -8835,16 +5246,19 @@ index 000000000..939e40583 + +#define _GLIBCXX_NONSHARED_CXX11_110 +#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"); ++//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"); +asm (".hidden _ZNSt8__detail18__to_chars_10_implIjEEvPcjT_"); ++#if !defined(__i386__) ++asm (".hidden _ZSt12__to_chars_iIoESt15to_chars_resultPcS1_T_i"); ++#endif diff --git a/libstdc++-v3/src/nonshared17/fs_dir.cc b/libstdc++-v3/src/nonshared17/fs_dir.cc new file mode 100644 -index 000000000..6b81bbb2c +index 000000000..616b849c8 --- /dev/null +++ b/libstdc++-v3/src/nonshared17/fs_dir.cc -@@ -0,0 +1,103 @@ -+// Copyright (C) 2019-2023 Free Software Foundation, Inc. +@@ -0,0 +1,105 @@ ++// Copyright (C) 2019-2024 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 @@ -8885,6 +5299,8 @@ index 000000000..6b81bbb2c +//asm (".hidden _ZNSt10filesystem9_Dir_baseC1EPKcbRSt10error_code"); +//asm (".hidden _ZNSt10filesystem9_Dir_baseC2EPKcbRSt10error_code"); +#endif ++asm (".hidden _ZNSt10filesystem7__cxx114pathC1INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES1_EERKT_NS1_6formatE"); ++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"); +asm (".hidden _ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEaSEOS6_"); @@ -8994,13 +5410,13 @@ index 000000000..eebc000f2 +std::__shared_ptr::operator bool () const noexcept; +template +std::__shared_ptr::operator bool () const noexcept; -diff --git a/libstdc++-v3/src/nonshared17/fs_ops.cc b/libstdc++-v3/src/nonshared17/fs_ops.cc +diff --git a/libstdc++-v3/src/nonshared17/fs_ops80.cc b/libstdc++-v3/src/nonshared17/fs_ops80.cc new file mode 100644 -index 000000000..eccecc621 +index 000000000..eed139f91 --- /dev/null -+++ b/libstdc++-v3/src/nonshared17/fs_ops.cc -@@ -0,0 +1,83 @@ -+// Copyright (C) 2019-2023 Free Software Foundation, Inc. ++++ b/libstdc++-v3/src/nonshared17/fs_ops80.cc +@@ -0,0 +1,103 @@ ++// Copyright (C) 2019-2024 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 @@ -9072,69 +5488,44 @@ index 000000000..eccecc621 +#endif +#ifdef __aarch64__ +//asm (".hidden _ZSt4copyINSt10filesystem7__cxx114path8iteratorESt15_Deque_iteratorIS2_RS2_PS2_EET0_T_S9_S8_"); -+//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4swapERS4_"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4swapERS4_"); +//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEmc"); +#endif +//asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE12emplace_backIIS2_EEERS2_DpOT_"); +//asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_"); +#ifdef __powerpc64__ -+#ifdef _GLIBCXX_NONSHARED_CXX17_80 -+//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4swapERS4_"); -+#endif ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4swapERS4_"); +//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEmc"); +#endif -diff --git a/libstdc++-v3/src/nonshared17/fs_ops80.cc b/libstdc++-v3/src/nonshared17/fs_ops80.cc -new file mode 100644 -index 000000000..d65cce8cc ---- /dev/null -+++ b/libstdc++-v3/src/nonshared17/fs_ops80.cc -@@ -0,0 +1,39 @@ -+// Copyright (C) 2019-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_NONSHARED_CXX17_80 -+#include "fs_ops.cc" +#ifndef __i386__ +//asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEmc"); +#endif -+#if defined(__s390x__) || defined(__powerpc64__) ++#if defined(__s390x__) +asm (".hidden _ZSt16__do_uninit_copyINSt10filesystem7__cxx114path8iteratorESt15_Deque_iteratorIS2_RS2_PS2_EET0_T_S9_S8_"); +//asm (".hidden _ZSt4copyINSt10filesystem7__cxx114path8iteratorESt15_Deque_iteratorIS2_RS2_PS2_EET0_T_S9_S8_"); +#endif ++#if defined(__x86_64__) || defined(__s390x__) +asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4swapERS4_"); ++//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEmc"); ++#endif +#ifdef __i386__ -+//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4swapERS4_"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEjc"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4swapERS4_"); ++//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEjc"); +//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 -diff --git a/libstdc++-v3/src/nonshared17/fs_path.cc b/libstdc++-v3/src/nonshared17/fs_path.cc ++#if defined(__i386__) || (defined(__powerpc__) && !defined(__powerpc64__)) ++asm (".hidden _ZNSt10filesystem18copy_file_sendfileEiij"); ++#else ++asm (".hidden _ZNSt10filesystem18copy_file_sendfileEiim"); ++#endif +diff --git a/libstdc++-v3/src/nonshared17/fs_path80.cc b/libstdc++-v3/src/nonshared17/fs_path80.cc new file mode 100644 -index 000000000..2f3a81397 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared17/fs_path.cc -@@ -0,0 +1,105 @@ -+// Copyright (C) 2019-2023 Free Software Foundation, Inc. +index 000000000..6ea0bac35 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared17/fs_path80.cc +@@ -0,0 +1,157 @@ ++// Copyright (C) 2019-2024 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 @@ -9199,8 +5590,8 @@ index 000000000..2f3a81397 +asm (".hidden _ZTVSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1116filesystem_error5_ImplESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE"); +asm (".hidden _ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag"); +asm (".hidden _ZNSt10filesystem7__cxx1116filesystem_error5_Impl9make_whatESt17basic_string_viewIcSt11char_traitsIcEEPKNS0_4pathES9_"); -+//asm (".hidden _ZNSt10filesystem7__cxx114path5_CmptD1Ev"); -+//asm (".hidden _ZNSt10filesystem7__cxx114path5_CmptD2Ev"); ++asm (".hidden _ZNSt10filesystem7__cxx114path5_CmptD1Ev"); ++asm (".hidden _ZNSt10filesystem7__cxx114path5_CmptD2Ev"); +asm (".hidden _ZNSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEED1Ev"); +asm (".hidden _ZNSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEED2Ev"); +asm (".hidden _ZNSt15__allocated_ptrISaISt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1116filesystem_error5_ImplESaIS4_ELN9__gnu_cxx12_Lock_policyE2EEEED1Ev"); @@ -9223,11 +5614,8 @@ index 000000000..2f3a81397 +#endif +//asm (".hidden _ZNSt12_Destroy_auxILb0EE9__destroyIPNSt10filesystem7__cxx114path5_CmptEEEvT_S7_"); +asm (".hidden _ZNKSt10filesystem7__cxx114path5_List5_Impl4copyEv"); -+#if defined(__aarch64__) || defined(__s390x__) -+//asm (".hidden _ZNSt10filesystem7__cxx114path5_List5beginEv"); -+//asm (".hidden _ZNSt10filesystem7__cxx114path7_Parser4nextEv"); -+#endif +#ifdef __aarch64__ ++asm (".hidden _ZNSt10filesystem7__cxx114path7_Parser4nextEv"); +asm (".hidden _ZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_"); // bad ppc64le +#endif +asm (".hidden _ZNSt10filesystem7__cxx114path8_CodecvtIwED2Ev"); @@ -9239,36 +5627,6 @@ index 000000000..2f3a81397 +asm (".hidden _ZTVNSt10filesystem7__cxx114path8_CodecvtIwEE"); +asm (".hidden _ZTSNSt10filesystem7__cxx114path8_CodecvtIwEE"); +asm (".hidden _ZTINSt10filesystem7__cxx114path8_CodecvtIwEE"); -diff --git a/libstdc++-v3/src/nonshared17/fs_path80.cc b/libstdc++-v3/src/nonshared17/fs_path80.cc -new file mode 100644 -index 000000000..f1a2d6d2c ---- /dev/null -+++ b/libstdc++-v3/src/nonshared17/fs_path80.cc -@@ -0,0 +1,80 @@ -+// Copyright (C) 2019-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_NONSHARED_CXX17_80 -+#include "fs_path.cc" +asm (".hidden _ZNSt10filesystem7__cxx118__detail24__throw_conversion_errorEv"); +//asm (".hidden _ZTIZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_E5_UCvt"); +//asm (".hidden _ZTSZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_E5_UCvt"); @@ -9279,35 +5637,34 @@ index 000000000..f1a2d6d2c +asm (".hidden _ZNSt12system_errorC1ESt10error_codeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"); +asm (".hidden _ZNSt12system_errorC2ESt10error_codeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"); +//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_assignERKS4_"); ++asm (".hidden _ZNSt10filesystem7__cxx114path5_List5beginEv"); +#ifndef __i386__ ++//asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6resizeEmw"); +//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm"); ++//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEmc"); +//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm"); +//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm"); +//asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv"); -+asm (".hidden _ZNSt12_Destroy_auxILb0EE9__destroyIPNSt10filesystem7__cxx114path5_CmptEEEvT_S7_"); ++//asm (".hidden _ZNSt12_Destroy_auxILb0EE9__destroyIPNSt10filesystem7__cxx114path5_CmptEEEvT_S7_"); +asm (".hidden _ZNKSt10filesystem7__cxx114path5_List5_Impl4copyEv"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6resizeEmw"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEmc"); +#endif -+#if defined(__aarch64__) ++#if defined(__aarch64__) || defined(__x86_64__) +asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_mutateEmmPKwm"); +#endif -+asm (".hidden _ZNSt10filesystem7__cxx114path5_List5beginEv"); -+asm (".hidden _ZNSt10filesystem7__cxx114path7_Parser4nextEv"); +#ifdef __powerpc64__ -+//asm (".hidden _ZNSt10filesystem7__cxx114path5_List5beginEv"); -+//asm (".hidden _ZNSt10filesystem7__cxx114path7_Parser4nextEv"); ++asm (".hidden _ZNSt10filesystem7__cxx114path7_Parser4nextEv"); ++#endif ++#ifdef __x86_64__ ++asm (".hidden _ZNSt10filesystem7__cxx114path7_Parser4nextEv"); +#endif +#ifdef __i386__ -+asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_mutateEjjPKwj"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEjjPKcj"); +asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEjc"); -+//asm (".hidden _ZNSt10filesystem7__cxx114path5_List5beginEv"); -+//asm (".hidden _ZNSt10filesystem7__cxx114path7_Parser4nextEv"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEjjPKcj"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEj"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcj"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_mutateEjjPKwj"); ++asm (".hidden _ZNSt10filesystem7__cxx114path7_Parser4nextEv"); ++//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEjjPKcj"); ++//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEj"); ++//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcj"); +asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6resizeEjw"); +#endif +asm (".hidden _ZNSt10filesystem7__cxx114path8_CodecvtIwED0Ev"); @@ -9327,11 +5684,11 @@ index 000000000..f1a2d6d2c +asm (".hidden _ZNSt10filesystem7__cxx114path19preferred_separatorE"); diff --git a/libstdc++-v3/src/nonshared17/memory_resource.cc b/libstdc++-v3/src/nonshared17/memory_resource.cc new file mode 100644 -index 000000000..87ab8ba04 +index 000000000..b94792bd5 --- /dev/null +++ b/libstdc++-v3/src/nonshared17/memory_resource.cc -@@ -0,0 +1,68 @@ -+// Copyright (C) 2019-2023 Free Software Foundation, Inc. +@@ -0,0 +1,75 @@ ++// Copyright (C) 2019-2024 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 @@ -9392,13 +5749,20 @@ index 000000000..87ab8ba04 +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_"); ++//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 +#ifdef __powerpc64__ +//asm (".hidden _ZNSt3pmr15__pool_resource5_Pool10deallocateEPNS_15memory_resourceEPv"); +#endif +asm (".hidden _ZNSt22__shared_mutex_pthread6unlockEv"); ++#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_"); ++#else ++asm (".hidden _ZNSt6vectorINSt3pmr15__pool_resource9_BigBlockENS0_21polymorphic_allocatorIS2_EEE17_M_realloc_appendIIRmS7_EEEvDpOT_"); ++asm (".hidden _ZNSt6vectorINSt3pmr15__pool_resource9_BigBlockENS0_21polymorphic_allocatorIS2_EEE17_M_realloc_appendIJRmS7_EEEvDpOT_"); ++#endif diff --git a/libstdc++-v3/src/nonshared17/ostream-inst.cc b/libstdc++-v3/src/nonshared17/ostream-inst.cc new file mode 100644 index 000000000..e370edf7d @@ -9533,13 +5897,13 @@ index 000000000..a317ca76e +asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE4dataEv"); diff --git a/libstdc++-v3/src/nonshared20/Makefile.am b/libstdc++-v3/src/nonshared20/Makefile.am new file mode 100644 -index 000000000..f1856e63d +index 000000000..8418914b1 --- /dev/null +++ b/libstdc++-v3/src/nonshared20/Makefile.am -@@ -0,0 +1,128 @@ +@@ -0,0 +1,124 @@ +## Makefile for the C++20 sources of the GNU C++ Standard library. +## -+## Copyright (C) 1997-2023 Free Software Foundation, Inc. ++## Copyright (C) 1997-2024 Free Software Foundation, Inc. +## +## This file is part of the libstdc++ version 3 distribution. +## Process this file with automake to produce Makefile.in. @@ -9562,24 +5926,21 @@ index 000000000..f1856e63d +include $(top_srcdir)/fragment.am + +# Convenience library for C++20 runtime. -+noinst_LTLIBRARIES = libnonshared20convenience48.la \ -+ libnonshared20convenience80.la \ ++noinst_LTLIBRARIES = libnonshared20convenience80.la \ + libnonshared20convenience110.la + +headers = + +if ENABLE_EXTERN_TEMPLATE +# XTEMPLATE_FLAGS = -fno-implicit-templates -+inst_sources48 = sstream-inst.cc +inst_sources80 = sstream-inst80.cc +else +# XTEMPLATE_FLAGS = -+inst_sources48 = +inst_sources80 = +endif + -+sources48 = tzdb.cc -+sources = tzdb80.cc ++sources80 = tzdb80.cc ++sources110 = tzdb110.cc + +vpath % $(top_srcdir)/src/nonshared20 + @@ -9590,19 +5951,18 @@ index 000000000..f1856e63d + echo ')__libstdcxx__";' >> $@.tmp + mv $@.tmp $@ + -+tzdb.lo: tzdb.cc tzdata.zi.h -+ $(LTCXXCOMPILE) -I. -c $< -+tzdb.o: tzdb.cc tzdata.zi.h -+ $(CXXCOMPILE) -I. -c $< +tzdb80.lo: tzdb80.cc tzdata.zi.h + $(LTCXXCOMPILE) -I. -c $< +tzdb80.o: tzdb80.cc tzdata.zi.h + $(CXXCOMPILE) -I. -c $< ++tzdb110.lo: tzdb110.cc tzdata.zi.h ++ $(LTCXXCOMPILE) -I. -c $< ++tzdb110.o: tzdb110.cc tzdata.zi.h ++ $(CXXCOMPILE) -I. -c $< +endif + -+libnonshared20convenience48_la_SOURCES = $(sources48) $(inst_sources48) -+libnonshared20convenience80_la_SOURCES = $(sources) $(inst_sources80) -+libnonshared20convenience110_la_SOURCES = $(sources) ++libnonshared20convenience80_la_SOURCES = $(sources80) $(inst_sources80) ++libnonshared20convenience110_la_SOURCES = $(sources110) + +# AM_CXXFLAGS needs to be in each subdirectory so that it can be +# modified in a per-library or per-sub-library way. Need to manually @@ -9667,10 +6027,10 @@ index 000000000..f1856e63d + $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ diff --git a/libstdc++-v3/src/nonshared20/Makefile.in b/libstdc++-v3/src/nonshared20/Makefile.in new file mode 100644 -index 000000000..03f4f052a +index 000000000..5bec80814 --- /dev/null +++ b/libstdc++-v3/src/nonshared20/Makefile.in -@@ -0,0 +1,791 @@ +@@ -0,0 +1,777 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + @@ -9794,7 +6154,7 @@ index 000000000..03f4f052a +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libnonshared20convenience110_la_LIBADD = -+am__objects_1 = tzdb80.lo ++am__objects_1 = tzdb110.lo +am_libnonshared20convenience110_la_OBJECTS = $(am__objects_1) +libnonshared20convenience110_la_OBJECTS = \ + $(am_libnonshared20convenience110_la_OBJECTS) @@ -9802,17 +6162,11 @@ index 000000000..03f4f052a +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = -+libnonshared20convenience48_la_LIBADD = -+am__objects_2 = tzdb.lo -+@ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_3 = sstream-inst.lo -+am_libnonshared20convenience48_la_OBJECTS = $(am__objects_2) \ -+ $(am__objects_3) -+libnonshared20convenience48_la_OBJECTS = \ -+ $(am_libnonshared20convenience48_la_OBJECTS) +libnonshared20convenience80_la_LIBADD = -+@ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_4 = sstream-inst80.lo -+am_libnonshared20convenience80_la_OBJECTS = $(am__objects_1) \ -+ $(am__objects_4) ++am__objects_2 = tzdb80.lo ++@ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_3 = sstream-inst80.lo ++am_libnonshared20convenience80_la_OBJECTS = $(am__objects_2) \ ++ $(am__objects_3) +libnonshared20convenience80_la_OBJECTS = \ + $(am_libnonshared20convenience80_la_OBJECTS) +AM_V_P = $(am__v_P_@AM_V@) @@ -9842,7 +6196,6 @@ index 000000000..03f4f052a +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +SOURCES = $(libnonshared20convenience110_la_SOURCES) \ -+ $(libnonshared20convenience48_la_SOURCES) \ + $(libnonshared20convenience80_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ @@ -10112,23 +6465,19 @@ index 000000000..03f4f052a +AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS) + +# Convenience library for C++20 runtime. -+noinst_LTLIBRARIES = libnonshared20convenience48.la \ -+ libnonshared20convenience80.la \ ++noinst_LTLIBRARIES = libnonshared20convenience80.la \ + libnonshared20convenience110.la + +headers = +# XTEMPLATE_FLAGS = -+@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources48 = ++@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources80 = + +# XTEMPLATE_FLAGS = -fno-implicit-templates -+@ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources48 = sstream-inst.cc -+@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources80 = +@ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources80 = sstream-inst80.cc -+sources48 = tzdb.cc -+sources = tzdb80.cc -+libnonshared20convenience48_la_SOURCES = $(sources48) $(inst_sources48) -+libnonshared20convenience80_la_SOURCES = $(sources) $(inst_sources80) -+libnonshared20convenience110_la_SOURCES = $(sources) ++sources80 = tzdb80.cc ++sources110 = tzdb110.cc ++libnonshared20convenience80_la_SOURCES = $(sources80) $(inst_sources80) ++libnonshared20convenience110_la_SOURCES = $(sources110) + +# AM_CXXFLAGS needs to be in each subdirectory so that it can be +# modified in a per-library or per-sub-library way. Need to manually @@ -10242,9 +6591,6 @@ index 000000000..03f4f052a +libnonshared20convenience110.la: $(libnonshared20convenience110_la_OBJECTS) $(libnonshared20convenience110_la_DEPENDENCIES) $(EXTRA_libnonshared20convenience110_la_DEPENDENCIES) + $(AM_V_CXXLD)$(CXXLINK) $(libnonshared20convenience110_la_OBJECTS) $(libnonshared20convenience110_la_LIBADD) $(LIBS) + -+libnonshared20convenience48.la: $(libnonshared20convenience48_la_OBJECTS) $(libnonshared20convenience48_la_DEPENDENCIES) $(EXTRA_libnonshared20convenience48_la_DEPENDENCIES) -+ $(AM_V_CXXLD)$(CXXLINK) $(libnonshared20convenience48_la_OBJECTS) $(libnonshared20convenience48_la_LIBADD) $(LIBS) -+ +libnonshared20convenience80.la: $(libnonshared20convenience80_la_OBJECTS) $(libnonshared20convenience80_la_DEPENDENCIES) $(EXTRA_libnonshared20convenience80_la_DEPENDENCIES) + $(AM_V_CXXLD)$(CXXLINK) $(libnonshared20convenience80_la_OBJECTS) $(libnonshared20convenience80_la_LIBADD) $(LIBS) + @@ -10450,54 +6796,25 @@ index 000000000..03f4f052a +@USE_STATIC_TZDATA_TRUE@ echo ')__libstdcxx__";' >> $@.tmp +@USE_STATIC_TZDATA_TRUE@ mv $@.tmp $@ + -+@USE_STATIC_TZDATA_TRUE@tzdb.lo: tzdb.cc tzdata.zi.h -+@USE_STATIC_TZDATA_TRUE@ $(LTCXXCOMPILE) -I. -c $< -+@USE_STATIC_TZDATA_TRUE@tzdb.o: tzdb.cc tzdata.zi.h -+@USE_STATIC_TZDATA_TRUE@ $(CXXCOMPILE) -I. -c $< +@USE_STATIC_TZDATA_TRUE@tzdb80.lo: tzdb80.cc tzdata.zi.h +@USE_STATIC_TZDATA_TRUE@ $(LTCXXCOMPILE) -I. -c $< +@USE_STATIC_TZDATA_TRUE@tzdb80.o: tzdb80.cc tzdata.zi.h +@USE_STATIC_TZDATA_TRUE@ $(CXXCOMPILE) -I. -c $< ++@USE_STATIC_TZDATA_TRUE@tzdb110.lo: tzdb110.cc tzdata.zi.h ++@USE_STATIC_TZDATA_TRUE@ $(LTCXXCOMPILE) -I. -c $< ++@USE_STATIC_TZDATA_TRUE@tzdb110.o: tzdb110.cc tzdata.zi.h ++@USE_STATIC_TZDATA_TRUE@ $(CXXCOMPILE) -I. -c $< + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: -diff --git a/libstdc++-v3/src/nonshared20/sstream-inst.cc b/libstdc++-v3/src/nonshared20/sstream-inst.cc -new file mode 100644 -index 000000000..fb0e58611 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared20/sstream-inst.cc -@@ -0,0 +1,23 @@ -+// Copyright (C) 2012-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include "../c++20/sstream-inst.cc" diff --git a/libstdc++-v3/src/nonshared20/sstream-inst80.cc b/libstdc++-v3/src/nonshared20/sstream-inst80.cc new file mode 100644 -index 000000000..2fe144da2 +index 000000000..b0b8f19e5 --- /dev/null +++ b/libstdc++-v3/src/nonshared20/sstream-inst80.cc -@@ -0,0 +1,36 @@ -+// Copyright (C) 2012-2023 Free Software Foundation, Inc. +@@ -0,0 +1,34 @@ ++// Copyright (C) 2012-2024 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 @@ -10524,21 +6841,19 @@ index 000000000..2fe144da2 +//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_assignERKS4_"); +//asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_M_disposeEv"); +//asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_assignERKS4_"); -+#if defined(__i386__) ++#if defined(__powerpc__) && !defined(__powerpc64__) +//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEjjPKcj"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_mutateEjjPKwj"); ++//asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_mutateEjjPKwj"); +#endif +asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv"); +asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE10_M_disposeEv"); -+#if defined(__x86_64__) || defined(__aarch64__) -+asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_mutateEmmPKwm"); -+#endif -diff --git a/libstdc++-v3/src/nonshared20/tzdb.cc b/libstdc++-v3/src/nonshared20/tzdb.cc ++//asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_mutateEmmPKwm"); +diff --git a/libstdc++-v3/src/nonshared20/tzdb110.cc b/libstdc++-v3/src/nonshared20/tzdb110.cc new file mode 100644 -index 000000000..aaed65daf +index 000000000..4be193df7 --- /dev/null -+++ b/libstdc++-v3/src/nonshared20/tzdb.cc -@@ -0,0 +1,96 @@ ++++ b/libstdc++-v3/src/nonshared20/tzdb110.cc +@@ -0,0 +1,27 @@ +// Copyright The GNU Toolchain Authors. +// +// This file is part of the GNU ISO C++ Library. This library is free @@ -10561,86 +6876,17 @@ index 000000000..aaed65daf +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+#include "../c++20/tzdb.cc" -+asm (".hidden _ZNKSt6chrono9time_zone4nameEv"); -+asm (".hidden _ZNKSt6chrono14time_zone_link4nameEv"); -+asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt6chrono9tzdb_list5_NodeESaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev"); -+asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt6chrono9tzdb_list5_NodeESaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev"); -+asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt6chrono9tzdb_list5_NodeESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev"); -+asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt6chrono9tzdb_list5_NodeESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv"); -+asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt6chrono9tzdb_list5_NodeESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info"); -+asm (".hidden _ZNKSt6chrono14year_month_day19_M_days_since_epochEv"); -+asm (".hidden _ZNSt6chronossERKNS_14time_zone_linkES2_"); -+asm (".hidden _ZNSt6chrono9time_zoneC2ESt10unique_ptrINS0_5_ImplESt14default_deleteIS2_EE"); -+asm (".hidden _ZNSt6chrono9time_zoneC1ESt10unique_ptrINS0_5_ImplESt14default_deleteIS2_EE"); -+asm (".hidden _ZNSt6chrono9tzdb_list5_Node13_S_head_cacheE"); -+asm (".hidden _ZNSt6atomicISt10shared_ptrINSt6chrono9tzdb_list5_NodeEEED2Ev"); -+asm (".hidden _ZNSt6atomicISt10shared_ptrINSt6chrono9tzdb_list5_NodeEEED1Ev"); -+asm (".hidden _ZNSt6chrono9tzdb_list5_Node13_S_head_ownerE"); -+asm (".hidden _ZNSt6chrono9tzdb_list5_Node15_S_replace_headESt10shared_ptrIS1_ES3_"); -+//asm (".hidden _ZNSt6vectorISt4pairINSt6chrono8sys_infoESt17basic_string_viewIcSt11char_traitsIcEEESaIS7_EE17_M_realloc_insertIJRS2_RS6_EEEvN9__gnu_cxx17__normal_iteratorIPS7_S9_EEDpOT_"); -+//asm (".hidden _ZNSt6vectorISt4pairINSt6chrono8sys_infoESt17basic_string_viewIcSt11char_traitsIcEEESaIS7_EE17_M_realloc_insertIIRS2_RS6_EEEvN9__gnu_cxx17__normal_iteratorIPS7_S9_EEDpOT_"); -+asm (".hidden _ZNSt6chrono9time_zoneD2Ev"); -+asm (".hidden _ZNSt6chrono9time_zoneD1Ev"); -+asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt6chrono9tzdb_list5_NodeESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv"); -+asm (".hidden _ZSt11make_uniqueINSt6chrono9time_zone5_ImplEJRSt10shared_ptrINS0_9tzdb_list5_NodeEEEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_"); -+asm (".hidden _ZSt11make_uniqueINSt6chrono9time_zone5_ImplEIRSt10shared_ptrINS0_9tzdb_list5_NodeEEEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_"); -+asm (".hidden _ZNSt6vectorINSt6chrono9time_zoneESaIS1_EE12emplace_backIJS1_EEERS1_DpOT_"); -+asm (".hidden _ZNSt6vectorINSt6chrono9time_zoneESaIS1_EE12emplace_backIIS1_EEERS1_DpOT_"); -+asm (".hidden _ZNSt12_Vector_baseINSt6chrono11leap_secondESaIS1_EED2Ev"); -+asm (".hidden _ZNSt12_Vector_baseINSt6chrono11leap_secondESaIS1_EED1Ev"); -+asm (".hidden _ZNSt6chrono9tzdb_list5_Node20_S_read_leap_secondsEv"); -+asm (".hidden _ZNSt6vectorINSt6chrono14time_zone_linkESaIS1_EE12emplace_backIJS1_EEERS1_DpOT_"); -+asm (".hidden _ZNSt6vectorINSt6chrono14time_zone_linkESaIS1_EE12emplace_backIIS1_EEERS1_DpOT_"); -+asm (".hidden _ZSt23__atomic_notify_addressIiEvPKT_b"); -+asm (".hidden _ZSt16__insertion_sortIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEENS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SG_SI_"); -+asm (".hidden _ZSt16__insertion_sortIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEENS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SG_SI_"); -+asm (".hidden _ZZNSt6ranges8__detail16__make_comp_projINS_4lessEMNSt6chrono9time_zoneEKDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_ENKUlOSB_OSD_E_clIRS4_SJ_EEbSF_SG_"); -+//asm (".hidden _ZSt25__unguarded_linear_insertIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEENS0_5__ops14_Val_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SN_"); -+asm (".hidden _ZSt16__insertion_sortIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEENS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SL_SN_"); -+asm (".hidden _ZZNSt6ranges8__detail16__make_comp_projINS_4lessEMNSt6chrono14time_zone_linkEKDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_ENKUlOSB_OSD_E_clIRS4_SJ_EEbSF_SG_"); -+asm (".hidden _ZSt16__insertion_sortIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEENS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SL_SN_"); -+asm (".hidden _ZSt4swapINSt6chrono9time_zoneEENSt9enable_ifIXsrSt6__and_IJSt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS6_ESt18is_move_assignableIS6_EEE5valueEvE4typeERS6_SG_"); -+asm (".hidden _ZSt4swapINSt6chrono9time_zoneEENSt9enable_ifIXsrSt6__and_IISt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS6_ESt18is_move_assignableIS6_EEE5valueEvE4typeERS6_SG_"); -+asm (".hidden _ZSt4swapINSt6chrono14time_zone_linkEENSt9enable_ifIXsrSt6__and_IJSt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS6_ESt18is_move_assignableIS6_EEE5valueEvE4typeERS6_SG_"); -+asm (".hidden _ZSt4swapINSt6chrono14time_zone_linkEENSt9enable_ifIXsrSt6__and_IISt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS6_ESt18is_move_assignableIS6_EEE5valueEvE4typeERS6_SG_"); -+#if !defined(__i386__) -+asm (".hidden _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEElS3_NS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SI_SI_T1_T2_"); -+asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv"); -+asm (".hidden _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEElNS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SL_SN_T1_"); -+asm (".hidden _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEElS3_NS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SN_SN_T1_T2_"); -+asm (".hidden _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEElS3_NS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SN_SN_T1_T2_"); -+asm (".hidden _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEElS3_NS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SI_SI_T1_T2_"); -+asm (".hidden _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEElNS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SG_SI_T1_"); -+asm (".hidden _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEElNS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SG_SI_T1_"); -+asm (".hidden _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEElNS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SL_SN_T1_"); -+#endif -+asm (".hidden _ZTVSt23_Sp_counted_ptr_inplaceINSt6chrono9tzdb_list5_NodeESaIvELN9__gnu_cxx12_Lock_policyE2EE"); -+asm (".hidden _ZNSt6chrono9tzdb_list5_Node12_S_init_tzdbEv"); -+asm (".hidden _ZNSt6chrono9tzdb_list5_Node11_S_the_listE"); -+asm (".hidden _ZTSSt23_Sp_counted_ptr_inplaceINSt6chrono9tzdb_list5_NodeESaIvELN9__gnu_cxx12_Lock_policyE2EE"); -+asm (".hidden _ZTISt23_Sp_counted_ptr_inplaceINSt6chrono9tzdb_list5_NodeESaIvELN9__gnu_cxx12_Lock_policyE2EE"); -+asm (".hidden _ZTSSt19_Sp_make_shared_tag"); -+asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv"); -+asm (".hidden _ZNSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEED2Ev"); -+asm (".hidden _ZNSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEED1Ev"); -+asm (".hidden _ZTSSt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE"); -+asm (".hidden _ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE"); -+asm (".hidden _ZTSSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE"); -+asm (".hidden _ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE"); -+asm (".hidden _ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag"); -+asm (".hidden _ZZNSt8__detail18__waiter_pool_base6_S_forEPKvE3__w"); -+#if defined(__i386__) -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEjjPKcj"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEj"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEjjPKcj"); -+#endif ++#define _GLIBCXX_NONSHARED_CXX11_110 ++#include "tzdb80.cc" ++asm (".hidden _ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED0Ev"); ++asm (".hidden _ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED1Ev"); ++asm (".hidden _ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED2Ev"); diff --git a/libstdc++-v3/src/nonshared20/tzdb80.cc b/libstdc++-v3/src/nonshared20/tzdb80.cc new file mode 100644 -index 000000000..48a8fe927 +index 000000000..dc123a2ae --- /dev/null +++ b/libstdc++-v3/src/nonshared20/tzdb80.cc -@@ -0,0 +1,122 @@ +@@ -0,0 +1,127 @@ +// Copyright The GNU Toolchain Authors. +// +// This file is part of the GNU ISO C++ Library. This library is free @@ -10680,8 +6926,8 @@ index 000000000..48a8fe927 +asm (".hidden _ZNSt6atomicISt10shared_ptrINSt6chrono9tzdb_list5_NodeEEED1Ev"); +asm (".hidden _ZNSt6chrono9tzdb_list5_Node13_S_head_ownerE"); +asm (".hidden _ZNSt6chrono9tzdb_list5_Node15_S_replace_headESt10shared_ptrIS1_ES3_"); -+asm (".hidden _ZNSt6vectorISt4pairINSt6chrono8sys_infoESt17basic_string_viewIcSt11char_traitsIcEEESaIS7_EE17_M_realloc_insertIJRS2_RS6_EEEvN9__gnu_cxx17__normal_iteratorIPS7_S9_EEDpOT_"); -+asm (".hidden _ZNSt6vectorISt4pairINSt6chrono8sys_infoESt17basic_string_viewIcSt11char_traitsIcEEESaIS7_EE17_M_realloc_insertIIRS2_RS6_EEEvN9__gnu_cxx17__normal_iteratorIPS7_S9_EEDpOT_"); ++//asm (".hidden _ZNSt6vectorISt4pairINSt6chrono8sys_infoESt17basic_string_viewIcSt11char_traitsIcEEESaIS7_EE17_M_realloc_insertIJRS2_RS6_EEEvN9__gnu_cxx17__normal_iteratorIPS7_S9_EEDpOT_"); ++//asm (".hidden _ZNSt6vectorISt4pairINSt6chrono8sys_infoESt17basic_string_viewIcSt11char_traitsIcEEESaIS7_EE17_M_realloc_insertIIRS2_RS6_EEEvN9__gnu_cxx17__normal_iteratorIPS7_S9_EEDpOT_"); +asm (".hidden _ZNSt6chrono9time_zoneD2Ev"); +asm (".hidden _ZNSt6chrono9time_zoneD1Ev"); +asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt6chrono9tzdb_list5_NodeESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv"); @@ -10705,34 +6951,58 @@ index 000000000..48a8fe927 +asm (".hidden _ZSt4swapINSt6chrono9time_zoneEENSt9enable_ifIXsrSt6__and_IISt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS6_ESt18is_move_assignableIS6_EEE5valueEvE4typeERS6_SG_"); +asm (".hidden _ZSt4swapINSt6chrono14time_zone_linkEENSt9enable_ifIXsrSt6__and_IJSt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS6_ESt18is_move_assignableIS6_EEE5valueEvE4typeERS6_SG_"); +asm (".hidden _ZSt4swapINSt6chrono14time_zone_linkEENSt9enable_ifIXsrSt6__and_IISt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS6_ESt18is_move_assignableIS6_EEE5valueEvE4typeERS6_SG_"); -+#if !defined(__i386__) -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm"); -+asm (".hidden _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEElS3_NS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SI_SI_T1_T2_"); -+asm (".hidden _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEElNS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SL_SN_T1_"); -+asm (".hidden _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEElS3_NS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SN_SN_T1_T2_"); -+asm (".hidden _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEElS3_NS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SN_SN_T1_T2_"); -+asm (".hidden _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEElS3_NS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SI_SI_T1_T2_"); -+asm (".hidden _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEElNS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SG_SI_T1_"); -+asm (".hidden _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEElNS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SG_SI_T1_"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcmRKS3_"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm"); -+asm (".hidden _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEElNS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SL_SN_T1_"); -+asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcmRKS3_"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm"); -+#endif +asm (".hidden _ZTVSt23_Sp_counted_ptr_inplaceINSt6chrono9tzdb_list5_NodeESaIvELN9__gnu_cxx12_Lock_policyE2EE"); +asm (".hidden _ZNSt6chrono9tzdb_list5_Node12_S_init_tzdbEv"); +asm (".hidden _ZNSt6chrono9tzdb_list5_Node11_S_the_listE"); +asm (".hidden _ZTSSt23_Sp_counted_ptr_inplaceINSt6chrono9tzdb_list5_NodeESaIvELN9__gnu_cxx12_Lock_policyE2EE"); +asm (".hidden _ZTISt23_Sp_counted_ptr_inplaceINSt6chrono9tzdb_list5_NodeESaIvELN9__gnu_cxx12_Lock_policyE2EE"); -+#if 0 -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev"); ++//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev"); ++//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_"); +asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_assignERKS4_"); ++#if defined(__i386__) || (defined(__powerpc__) && !defined(__powerpc64__)) ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcjRKS3_"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcjRKS3_"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEj"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEjjPKcj"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEjjPKcj"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcj"); ++#else ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcmRKS3_"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcmRKS3_"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm"); ++#endif ++#ifdef __i386__ ++asm (".hidden _ZSt25__unguarded_linear_insertIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEENS0_5__ops14_Val_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SN_"); ++asm (".hidden _ZSt25__unguarded_linear_insertIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEENS0_5__ops14_Val_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SN_"); ++asm (".hidden _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEEiS3_NS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SN_SN_T1_T2_"); ++asm (".hidden _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEEiS3_NS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SI_SI_T1_T2_"); ++asm (".hidden _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEEiS3_NS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SN_SN_T1_T2_"); ++asm (".hidden _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEEiS3_NS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SI_SI_T1_T2_"); ++asm (".hidden _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEEiNS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SL_SN_T1_"); ++asm (".hidden _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEEiNS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SG_SI_T1_"); ++asm (".hidden _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEEiNS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SL_SN_T1_"); ++asm (".hidden _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEEiNS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SG_SI_T1_"); ++#else ++asm (".hidden _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEElS3_NS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SN_SN_T1_T2_"); ++asm (".hidden _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEElS3_NS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SI_SI_T1_T2_"); ++asm (".hidden _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEElS3_NS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SN_SN_T1_T2_"); ++asm (".hidden _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEElS3_NS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SI_SI_T1_T2_"); ++asm (".hidden _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEElNS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SL_SN_T1_"); ++asm (".hidden _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEElNS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SG_SI_T1_"); ++asm (".hidden _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEElNS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SL_SN_T1_"); ++asm (".hidden _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEElNS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SG_SI_T1_"); +#endif +asm (".hidden _ZTSSt19_Sp_make_shared_tag"); ++#ifndef __i386__ ++asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv"); ++#endif ++asm (".hidden _ZSt23__atomic_wait_address_vIiZNKSt13__atomic_baseIiE4waitEiSt12memory_orderEUlvE_EvPKT_S4_T0_"); +asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv"); +asm (".hidden _ZNSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEED2Ev"); +asm (".hidden _ZNSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEED1Ev"); @@ -10740,35 +7010,16 @@ index 000000000..48a8fe927 +asm (".hidden _ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE"); +asm (".hidden _ZTSSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE"); +asm (".hidden _ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE"); -+asm (".hidden _ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag"); -+asm (".hidden _ZZNSt8__detail18__waiter_pool_base6_S_forEPKvE3__w"); -+#if defined(__aarch64__) -+asm (".hidden _ZNKSt10filesystem7__cxx114path8iteratordeEv"); -+#endif -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_assignERKS4_"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_"); -+asm (".hidden _ZSt23__atomic_wait_address_vIiZNKSt13__atomic_baseIiE4waitEiSt12memory_orderEUlvE_EvPKT_S4_T0_"); -+#if defined(__i386__) -+asm (".hidden _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEEiNS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SG_SI_T1_"); -+asm (".hidden _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEEiNS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SL_SN_T1_"); -+asm (".hidden _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEEiNS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SG_SI_T1_"); -+asm (".hidden _ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEEiNS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SL_SN_T1_"); -+asm (".hidden _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEEiS3_NS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SI_SI_T1_T2_"); -+asm (".hidden _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEEiS3_NS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SN_SN_T1_T2_"); -+asm (".hidden _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEEiS3_NS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessESt8identityEEDaRT_RT0_EUlOSG_OSI_E_EEEvSG_SI_SI_T1_T2_"); -+asm (".hidden _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPNSt6chrono14time_zone_linkESt6vectorIS3_SaIS3_EEEEiS3_NS0_5__ops15_Iter_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SN_SN_T1_T2_"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcjRKS3_"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcjRKS3_"); -+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcj"); -+asm (".hidden _ZSt25__unguarded_linear_insertIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS3_SaIS3_EEEENS0_5__ops14_Val_comp_iterIZNSt6ranges8__detail16__make_comp_projINSB_4lessEMS3_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEDaRT_RT0_EUlOSL_OSN_E_EEEvSL_SN_"); -+#endif ++asm (".hidden _ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag"); ++asm (".hidden _ZZNSt8__detail18__waiter_pool_base6_S_forEPKvE3__w"); ++asm (".hidden _ZNSt6vectorISt4pairINSt6chrono8sys_infoESt17basic_string_viewIcSt11char_traitsIcEEESaIS7_EE17_M_realloc_appendIJRS2_RS6_EEEvDpOT_"); ++asm (".hidden _ZNSt6vectorISt4pairINSt6chrono8sys_infoESt17basic_string_viewIcSt11char_traitsIcEEESaIS7_EE17_M_realloc_appendIIRS2_RS6_EEEvDpOT_"); diff --git a/libstdc++-v3/src/nonshared23/Makefile.am b/libstdc++-v3/src/nonshared23/Makefile.am new file mode 100644 -index 000000000..a54e49e91 +index 000000000..0100d53e7 --- /dev/null +++ b/libstdc++-v3/src/nonshared23/Makefile.am -@@ -0,0 +1,110 @@ +@@ -0,0 +1,112 @@ +## Makefile for the C++23 sources of the GNU C++ Standard library. +## +## Copyright (C) 1997-2024 Free Software Foundation, Inc. @@ -10794,13 +7045,14 @@ index 000000000..a54e49e91 +include $(top_srcdir)/fragment.am + +# Convenience library for C++23 runtime. -+noinst_LTLIBRARIES = libnonshared23convenience48.la ++noinst_LTLIBRARIES = libnonshared23convenience80.la \ ++ libnonshared23convenience110.la + +headers = + +if ENABLE_EXTERN_TEMPLATE +# XTEMPLATE_FLAGS = -fno-implicit-templates -+inst_sources = ++inst_sources = +else +# XTEMPLATE_FLAGS = +inst_sources = @@ -10810,13 +7062,14 @@ index 000000000..a54e49e91 + +vpath % $(top_srcdir)/src/nonshared23 + -+libnonshared23convenience48_la_SOURCES = $(sources) $(inst_sources) ++libnonshared23convenience80_la_SOURCES = $(sources) $(inst_sources) ++libnonshared23convenience110_la_SOURCES = $(sources) $(inst_sources) + -+# Use C++23 so that std::filebuf::native_handle() is available. -+print.lo: print.cc -+ $(LTCXXCOMPILE) -std=gnu++23 -c $< -+print.o: print.cc -+ $(CXXCOMPILE) -std=gnu++23 -c $< ++# Use C++26 so that std::filebuf::native_handle() is available. ++print80.lo: print80.cc ++ $(LTCXXCOMPILE) -std=gnu++26 -c $< ++print80.o: print80.cc ++ $(CXXCOMPILE) -std=gnu++26 -c $< + +# AM_CXXFLAGS needs to be in each subdirectory so that it can be +# modified in a per-library or per-sub-library way. Need to manually @@ -10881,10 +7134,10 @@ index 000000000..a54e49e91 + $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ diff --git a/libstdc++-v3/src/nonshared23/Makefile.in b/libstdc++-v3/src/nonshared23/Makefile.in new file mode 100644 -index 000000000..1fd243d51 +index 000000000..c8ffecaae --- /dev/null +++ b/libstdc++-v3/src/nonshared23/Makefile.in -@@ -0,0 +1,762 @@ +@@ -0,0 +1,767 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + @@ -11007,23 +7260,22 @@ index 000000000..1fd243d51 +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) -+ -+AM_V_lt = $(am__v_lt_@AM_V@) -+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -+am__v_lt_0 = --silent -+am__v_lt_1 = -+libnonshared23convenience48_la_LIBADD = ++libnonshared23convenience110_la_LIBADD = +am__objects_1 = stacktrace.lo print.lo +am__objects_2 = -+am_libnonshared23convenience48_la_OBJECTS = $(am__objects_1) \ ++am_libnonshared23convenience110_la_OBJECTS = $(am__objects_1) \ + $(am__objects_2) -+libnonshared23convenience48_la_OBJECTS = \ -+ $(am_libnonshared23convenience48_la_OBJECTS) -+ ++libnonshared23convenience110_la_OBJECTS = \ ++ $(am_libnonshared23convenience110_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent -+am__v_lt_1 = ++am__v_lt_1 = ++libnonshared23convenience80_la_LIBADD = ++am_libnonshared23convenience80_la_OBJECTS = $(am__objects_1) \ ++ $(am__objects_2) ++libnonshared23convenience80_la_OBJECTS = \ ++ $(am_libnonshared23convenience80_la_OBJECTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false @@ -11031,11 +7283,11 @@ index 000000000..1fd243d51 +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; -+am__v_GEN_1 = ++am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ -+am__v_at_1 = ++am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = +am__depfiles_maybe = @@ -11044,14 +7296,14 @@ index 000000000..1fd243d51 +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; -+am__v_CXX_1 = ++am__v_CXX_1 = +CXXLD = $(CXX) +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; -+am__v_CXXLD_1 = -+SOURCES = $(libnonshared23convenience48_la_SOURCES) -+ ++am__v_CXXLD_1 = ++SOURCES = $(libnonshared23convenience110_la_SOURCES) \ ++ $(libnonshared23convenience80_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ @@ -11099,6 +7351,8 @@ index 000000000..1fd243d51 +BASIC_FILE_CC = @BASIC_FILE_CC@ +BASIC_FILE_H = @BASIC_FILE_H@ +CC = @CC@ ++CCAS = @CCAS@ ++CCASFLAGS = @CCASFLAGS@ +CCODECVT_CC = @CCODECVT_CC@ +CCOLLATE_CC = @CCOLLATE_CC@ +CCTYPE_CC = @CCTYPE_CC@ @@ -11298,11 +7552,11 @@ index 000000000..1fd243d51 +STAMP = echo timestamp > +toolexecdir = $(glibcxx_toolexecdir) +toolexeclibdir = $(glibcxx_toolexeclibdir) -+@ENABLE_WERROR_FALSE@WERROR_FLAG = ++@ENABLE_WERROR_FALSE@WERROR_FLAG = +@ENABLE_WERROR_TRUE@WERROR_FLAG = -Werror -+@ENABLE_EXTERN_TEMPLATE_FALSE@XTEMPLATE_FLAGS = ++@ENABLE_EXTERN_TEMPLATE_FALSE@XTEMPLATE_FLAGS = +@ENABLE_EXTERN_TEMPLATE_TRUE@XTEMPLATE_FLAGS = -fno-implicit-templates -+@GLIBCXX_LDBL_ALT128_COMPAT_FALSE@LDBL_128_FLAGS = ++@GLIBCXX_LDBL_ALT128_COMPAT_FALSE@LDBL_128_FLAGS = +@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@LDBL_128_FLAGS = $(LONG_DOUBLE_128_FLAGS) + +# These bits are all figured out from configure. Look in acinclude.m4 @@ -11311,23 +7565,25 @@ index 000000000..1fd243d51 + $(SECTION_FLAGS) $(HWCAP_CFLAGS) -frandom-seed=$@ $(LDBL_128_FLAGS) + +WARN_CXXFLAGS = \ -+ $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once ++ $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once + + +# -I/-D flags to pass when compiling. +AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS) + +# Convenience library for C++23 runtime. -+noinst_LTLIBRARIES = libnonshared23convenience48.la -+headers = ++noinst_LTLIBRARIES = libnonshared23convenience80.la \ ++ libnonshared23convenience110.la ++ ++headers = +# XTEMPLATE_FLAGS = -+@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources = ++@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources = + +# XTEMPLATE_FLAGS = -fno-implicit-templates -+@ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources = ++@ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources = +sources = stacktrace.cc print.cc -+@GLIBCXX_HOSTED_FALSE@libc__23convenience_la_SOURCES = -+@GLIBCXX_HOSTED_TRUE@libc__23convenience_la_SOURCES = $(sources) $(inst_sources) ++libnonshared23convenience80_la_SOURCES = $(sources) $(inst_sources) ++libnonshared23convenience110_la_SOURCES = $(sources) $(inst_sources) + +# AM_CXXFLAGS needs to be in each subdirectory so that it can be +# modified in a per-library or per-sub-library way. Need to manually @@ -11438,9 +7694,11 @@ index 000000000..1fd243d51 + rm -f $${locs}; \ + } + -+libnonshared23convenience48.la: $(libnonshared23convenience48_la_OBJECTS) $(libnonshared23convenience48_la_DEPENDENCIES) $(EXTRA_libnonshared23convenience48_la_DEPENDENCIES) -+ $(AM_V_CXXLD)$(CXXLINK) $(libnonshared23convenience48_la_OBJECTS) $(libnonshared23convenience48_la_LIBADD) $(LIBS) ++libnonshared23convenience110.la: $(libnonshared23convenience110_la_OBJECTS) $(libnonshared23convenience110_la_DEPENDENCIES) $(EXTRA_libnonshared23convenience110_la_DEPENDENCIES) ++ $(AM_V_CXXLD)$(CXXLINK) $(libnonshared23convenience110_la_OBJECTS) $(libnonshared23convenience110_la_LIBADD) $(LIBS) + ++libnonshared23convenience80.la: $(libnonshared23convenience80_la_OBJECTS) $(libnonshared23convenience80_la_DEPENDENCIES) $(EXTRA_libnonshared23convenience80_la_DEPENDENCIES) ++ $(AM_V_CXXLD)$(CXXLINK) $(libnonshared23convenience80_la_OBJECTS) $(libnonshared23convenience80_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) @@ -11639,9 +7897,9 @@ index 000000000..1fd243d51 +vpath % $(top_srcdir)/src/nonshared23 + +# Use C++26 so that std::filebuf::native_handle() is available. -+print.lo: print.cc ++print80.lo: print80.cc + $(LTCXXCOMPILE) -std=gnu++26 -c $< -+print.o: print.cc ++print80.o: print80.cc + $(CXXCOMPILE) -std=gnu++26 -c $< + +# Tell versions [3.59,3.63) of GNU make to not export all variables. @@ -11707,13 +7965,13 @@ index 000000000..a69fff54a +#include "../c++23/stacktrace.cc" diff --git a/libstdc++-v3/src/nonshared26/Makefile.am b/libstdc++-v3/src/nonshared26/Makefile.am new file mode 100644 -index 000000000..ae5a7ddbc +index 000000000..2085fcbe6 --- /dev/null +++ b/libstdc++-v3/src/nonshared26/Makefile.am -@@ -0,0 +1,104 @@ +@@ -0,0 +1,106 @@ +## Makefile for the C++26 sources of the GNU C++ Standard library. +## -+## Copyright (C) 1997-2023 Free Software Foundation, Inc. ++## Copyright (C) 1997-2024 Free Software Foundation, Inc. +## +## This file is part of the libstdc++ version 3 distribution. +## Process this file with automake to produce Makefile.in. @@ -11736,13 +7994,14 @@ index 000000000..ae5a7ddbc +include $(top_srcdir)/fragment.am + +# Convenience library for C++26 runtime. -+noinst_LTLIBRARIES = libnonshared26convenience48.la ++noinst_LTLIBRARIES = libnonshared26convenience80.la \ ++ libnonshared26convenience110.la + +headers = + +if ENABLE_EXTERN_TEMPLATE +# XTEMPLATE_FLAGS = -fno-implicit-templates -+inst_sources = ++inst_sources = +else +# XTEMPLATE_FLAGS = +inst_sources = @@ -11750,9 +8009,10 @@ index 000000000..ae5a7ddbc + +sources = text_encoding.cc + -+vpath % $(top_srcdir)/src/c++26 ++vpath % $(top_srcdir)/src/nonshared26 + -+libnonshared26convenience48_la_SOURCES = $(sources) $(inst_sources) ++libnonshared26convenience80_la_SOURCES = $(sources) $(inst_sources) ++libnonshared26convenience110_la_SOURCES = $(sources) $(inst_sources) + +# AM_CXXFLAGS needs to be in each subdirectory so that it can be +# modified in a per-library or per-sub-library way. Need to manually @@ -11817,10 +8077,10 @@ index 000000000..ae5a7ddbc + $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ diff --git a/libstdc++-v3/src/nonshared26/Makefile.in b/libstdc++-v3/src/nonshared26/Makefile.in new file mode 100644 -index 000000000..f6712e619 +index 000000000..346c11683 --- /dev/null +++ b/libstdc++-v3/src/nonshared26/Makefile.in -@@ -0,0 +1,747 @@ +@@ -0,0 +1,761 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + @@ -11943,16 +8203,22 @@ index 000000000..f6712e619 +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) -+libnonshared26convenience48_la_LIBADD = ++libnonshared26convenience110_la_LIBADD = +am__objects_1 = text_encoding.lo +am__objects_2 = -+@GLIBCXX_HOSTED_TRUE@am_libnonshared26convenience48_la_OBJECTS = \ -+@GLIBCXX_HOSTED_TRUE@ $(am__objects_1) $(am__objects_2) -+libnonshared26convenience48_la_OBJECTS = $(am_libnonshared26convenience48_la_OBJECTS) ++am_libnonshared26convenience110_la_OBJECTS = $(am__objects_1) \ ++ $(am__objects_2) ++libnonshared26convenience110_la_OBJECTS = \ ++ $(am_libnonshared26convenience110_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent -+am__v_lt_1 = ++am__v_lt_1 = ++libnonshared26convenience80_la_LIBADD = ++am_libnonshared26convenience80_la_OBJECTS = $(am__objects_1) \ ++ $(am__objects_2) ++libnonshared26convenience80_la_OBJECTS = \ ++ $(am_libnonshared26convenience80_la_OBJECTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false @@ -11960,11 +8226,11 @@ index 000000000..f6712e619 +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; -+am__v_GEN_1 = ++am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ -+am__v_at_1 = ++am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = +am__depfiles_maybe = @@ -11973,13 +8239,14 @@ index 000000000..f6712e619 +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; -+am__v_CXX_1 = ++am__v_CXX_1 = +CXXLD = $(CXX) +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; -+am__v_CXXLD_1 = -+SOURCES = $(libnonshared26convenience48_la_SOURCES) ++am__v_CXXLD_1 = ++SOURCES = $(libnonshared26convenience110_la_SOURCES) \ ++ $(libnonshared26convenience80_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ @@ -12027,6 +8294,8 @@ index 000000000..f6712e619 +BASIC_FILE_CC = @BASIC_FILE_CC@ +BASIC_FILE_H = @BASIC_FILE_H@ +CC = @CC@ ++CCAS = @CCAS@ ++CCASFLAGS = @CCASFLAGS@ +CCODECVT_CC = @CCODECVT_CC@ +CCOLLATE_CC = @CCOLLATE_CC@ +CCTYPE_CC = @CCTYPE_CC@ @@ -12226,11 +8495,11 @@ index 000000000..f6712e619 +STAMP = echo timestamp > +toolexecdir = $(glibcxx_toolexecdir) +toolexeclibdir = $(glibcxx_toolexeclibdir) -+@ENABLE_WERROR_FALSE@WERROR_FLAG = ++@ENABLE_WERROR_FALSE@WERROR_FLAG = +@ENABLE_WERROR_TRUE@WERROR_FLAG = -Werror -+@ENABLE_EXTERN_TEMPLATE_FALSE@XTEMPLATE_FLAGS = ++@ENABLE_EXTERN_TEMPLATE_FALSE@XTEMPLATE_FLAGS = +@ENABLE_EXTERN_TEMPLATE_TRUE@XTEMPLATE_FLAGS = -fno-implicit-templates -+@GLIBCXX_LDBL_ALT128_COMPAT_FALSE@LDBL_128_FLAGS = ++@GLIBCXX_LDBL_ALT128_COMPAT_FALSE@LDBL_128_FLAGS = +@GLIBCXX_LDBL_ALT128_COMPAT_TRUE@LDBL_128_FLAGS = $(LONG_DOUBLE_128_FLAGS) + +# These bits are all figured out from configure. Look in acinclude.m4 @@ -12239,23 +8508,25 @@ index 000000000..f6712e619 + $(SECTION_FLAGS) $(HWCAP_CFLAGS) -frandom-seed=$@ $(LDBL_128_FLAGS) + +WARN_CXXFLAGS = \ -+ $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once ++ $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once + + +# -I/-D flags to pass when compiling. +AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS) + +# Convenience library for C++26 runtime. -+noinst_LTLIBRARIES = libnonshared26convenience48.la -+headers = ++noinst_LTLIBRARIES = libnonshared26convenience80.la \ ++ libnonshared26convenience110.la ++ ++headers = +# XTEMPLATE_FLAGS = -+@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources = ++@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources = + +# XTEMPLATE_FLAGS = -fno-implicit-templates -+@ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources = ++@ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources = +sources = text_encoding.cc -+@GLIBCXX_HOSTED_FALSE@libc__26convenience_la_SOURCES = -+@GLIBCXX_HOSTED_TRUE@libc__26convenience_la_SOURCES = $(sources) $(inst_sources) ++libnonshared26convenience80_la_SOURCES = $(sources) $(inst_sources) ++libnonshared26convenience110_la_SOURCES = $(sources) $(inst_sources) + +# AM_CXXFLAGS needs to be in each subdirectory so that it can be +# modified in a per-library or per-sub-library way. Need to manually @@ -12366,8 +8637,11 @@ index 000000000..f6712e619 + rm -f $${locs}; \ + } + -+libnonshared26convenience48.la: $(libnonshared26convenience48_la_OBJECTS) $(libnonshared26convenience48_la_DEPENDENCIES) $(EXTRA_libnonshared26convenience48_la_DEPENDENCIES) -+ $(AM_V_CXXLD)$(CXXLINK) $(libnonshared26convenience48_la_OBJECTS) $(libnonshared26convenience48_la_LIBADD) $(LIBS) ++libnonshared26convenience110.la: $(libnonshared26convenience110_la_OBJECTS) $(libnonshared26convenience110_la_DEPENDENCIES) $(EXTRA_libnonshared26convenience110_la_DEPENDENCIES) ++ $(AM_V_CXXLD)$(CXXLINK) $(libnonshared26convenience110_la_OBJECTS) $(libnonshared26convenience110_la_LIBADD) $(LIBS) ++ ++libnonshared26convenience80.la: $(libnonshared26convenience80_la_OBJECTS) $(libnonshared26convenience80_la_DEPENDENCIES) $(EXTRA_libnonshared26convenience80_la_DEPENDENCIES) ++ $(AM_V_CXXLD)$(CXXLINK) $(libnonshared26convenience80_la_OBJECTS) $(libnonshared26convenience80_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) @@ -12563,7 +8837,7 @@ index 000000000..f6712e619 +.PRECIOUS: Makefile + + -+vpath % $(top_srcdir)/src/c++26 ++vpath % $(top_srcdir)/src/nonshared26 + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. @@ -12599,13 +8873,13 @@ index 000000000..bdda684a1 +#include "../c++26/text_encoding.cc" diff --git a/libstdc++-v3/src/nonshared98/Makefile.am b/libstdc++-v3/src/nonshared98/Makefile.am new file mode 100644 -index 000000000..6978a0b69 +index 000000000..3d9bcdf28 --- /dev/null +++ b/libstdc++-v3/src/nonshared98/Makefile.am -@@ -0,0 +1,149 @@ +@@ -0,0 +1,102 @@ +## Makefile for the C++03 sources of the GNU C++ Standard library. +## -+## Copyright (C) 1997-2023 Free Software Foundation, Inc. ++## Copyright (C) 1997-2024 Free Software Foundation, Inc. +## +## This file is part of the libstdc++ version 3 distribution. +## Process this file with automake to produce Makefile.in. @@ -12628,8 +8902,7 @@ index 000000000..6978a0b69 +include $(top_srcdir)/fragment.am + +# Convenience library for C++98 runtime. -+noinst_LTLIBRARIES = libnonshared98convenience48.la \ -+ libnonshared98convenience80.la \ ++noinst_LTLIBRARIES = libnonshared98convenience80.la \ + libnonshared98convenience110.la + +headers = @@ -12640,50 +8913,20 @@ index 000000000..6978a0b69 + basic_file.cc c++locale.cc \ + ${ldbl_compat_sources} ${parallel_sources} + -+if ENABLE_EXTERN_TEMPLATE -+# XTEMPLATE_FLAGS = -fno-implicit-templates -+inst_sources = \ -+ snprintf_lite-inst.cc \ -+ misc-inst.cc -+else -+# XTEMPLATE_FLAGS = -+inst_sources = -+endif -+ +# Sources present in the src directory, always present. +sources = \ + extfloat.S \ -+ ios_init.cc -+sources4880 = \ -+ char8_t-rtti.S -+sources48 = \ -+ collate_members.cc \ -+ float128.S \ -+ istream-string.cc \ -+ locale.cc \ -+ locale_facets.cc \ -+ c++locale.cc \ -+ ios_failure.cc \ -+ messages_members.cc \ -+ monetary_members.cc \ -+ numeric_members.cc \ -+ numeric_members_cow.cc \ -+ eh_exception.cc \ -+ eh_catch.cc \ -+ int128.S \ -+ eh_alloc48.cc \ -+ ${inst_sources} ++ ios_init.cc \ ++ locale_facets.cc +sources80 = \ -+ ios_failure80.cc \ -+ locale_facets80.cc -+sources110 = \ -+ locale_facets80.cc ++ char8_t-rtti.S \ ++ ios_failure.cc ++sources110 = + +vpath % $(top_srcdir)/src/nonshared98 +vpath % $(top_srcdir) + -+libnonshared98convenience48_la_SOURCES = $(sources) $(sources4880) $(sources48) -+libnonshared98convenience80_la_SOURCES = $(sources) $(sources4880) $(sources80) ++libnonshared98convenience80_la_SOURCES = $(sources) $(sources80) +libnonshared98convenience110_la_SOURCES = $(sources) $(sources110) + +# AM_CXXFLAGS needs to be in each subdirectory so that it can be @@ -12736,28 +8979,12 @@ index 000000000..6978a0b69 + --mode=link $(CXX) \ + $(VTV_CXXLINKFLAGS) \ + $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ -+ -+collate_members.lo: collate_members.cc -+ $(LTCXXCOMPILE) -I. -c $< -+messages_members.lo: messages_members.cc -+ $(LTCXXCOMPILE) -I. -c $< -+monetary_members.lo: monetary_members.cc -+ $(LTCXXCOMPILE) -I. -c $< -+numeric_members.lo: numeric_members.cc -+ $(LTCXXCOMPILE) -I. -c $< -+numeric_members_cow.lo: numeric_members_cow.cc -+ $(LTCXXCOMPILE) -I. -c $< -+# Use special rules to compile with -fimplicit-templates. -+c++locale.lo: c++locale.cc -+ $(LTCXXCOMPILE) -I. -fimplicit-templates -c $< -+c++locale.o: c++locale.cc -+ $(CXXCOMPILE) -I. -fimplicit-templates -c $< diff --git a/libstdc++-v3/src/nonshared98/Makefile.in b/libstdc++-v3/src/nonshared98/Makefile.in new file mode 100644 -index 000000000..186594985 +index 000000000..df98a485a --- /dev/null +++ b/libstdc++-v3/src/nonshared98/Makefile.in -@@ -0,0 +1,867 @@ +@@ -0,0 +1,802 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + @@ -12881,8 +9108,8 @@ index 000000000..186594985 +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libnonshared98convenience110_la_LIBADD = -+am__objects_1 = extfloat.lo ios_init.lo -+am__objects_2 = locale_facets80.lo ++am__objects_1 = extfloat.lo ios_init.lo locale_facets.lo ++am__objects_2 = +am_libnonshared98convenience110_la_OBJECTS = $(am__objects_1) \ + $(am__objects_2) +libnonshared98convenience110_la_OBJECTS = \ @@ -12891,23 +9118,10 @@ index 000000000..186594985 +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = -+libnonshared98convenience48_la_LIBADD = -+am__objects_3 = char8_t-rtti.lo -+@ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_4 = snprintf_lite-inst.lo \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ misc-inst.lo -+am__objects_5 = collate_members.lo float128.lo istream-string.lo \ -+ locale.lo locale_facets.lo c++locale.lo ios_failure.lo \ -+ messages_members.lo monetary_members.lo numeric_members.lo \ -+ numeric_members_cow.lo eh_exception.lo eh_catch.lo int128.lo \ -+ eh_alloc48.lo $(am__objects_4) -+am_libnonshared98convenience48_la_OBJECTS = $(am__objects_1) \ -+ $(am__objects_3) $(am__objects_5) -+libnonshared98convenience48_la_OBJECTS = \ -+ $(am_libnonshared98convenience48_la_OBJECTS) +libnonshared98convenience80_la_LIBADD = -+am__objects_6 = ios_failure80.lo locale_facets80.lo ++am__objects_3 = char8_t-rtti.lo ios_failure.lo +am_libnonshared98convenience80_la_OBJECTS = $(am__objects_1) \ -+ $(am__objects_3) $(am__objects_6) ++ $(am__objects_3) +libnonshared98convenience80_la_OBJECTS = \ + $(am_libnonshared98convenience80_la_OBJECTS) +AM_V_P = $(am__v_P_@AM_V@) @@ -12965,7 +9179,6 @@ index 000000000..186594985 +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libnonshared98convenience110_la_SOURCES) \ -+ $(libnonshared98convenience48_la_SOURCES) \ + $(libnonshared98convenience80_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ @@ -13235,8 +9448,7 @@ index 000000000..186594985 +AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS) + +# Convenience library for C++98 runtime. -+noinst_LTLIBRARIES = libnonshared98convenience48.la \ -+ libnonshared98convenience80.la \ ++noinst_LTLIBRARIES = libnonshared98convenience80.la \ + libnonshared98convenience110.la + +headers = @@ -13247,50 +9459,19 @@ index 000000000..186594985 + basic_file.cc c++locale.cc \ + ${ldbl_compat_sources} ${parallel_sources} + -+# XTEMPLATE_FLAGS = -+@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources = -+ -+# XTEMPLATE_FLAGS = -fno-implicit-templates -+@ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources = \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ snprintf_lite-inst.cc \ -+@ENABLE_EXTERN_TEMPLATE_TRUE@ misc-inst.cc -+ + +# Sources present in the src directory, always present. +sources = \ + extfloat.S \ -+ ios_init.cc -+ -+sources4880 = \ -+ char8_t-rtti.S -+ -+sources48 = \ -+ collate_members.cc \ -+ float128.S \ -+ istream-string.cc \ -+ locale.cc \ -+ locale_facets.cc \ -+ c++locale.cc \ -+ ios_failure.cc \ -+ messages_members.cc \ -+ monetary_members.cc \ -+ numeric_members.cc \ -+ numeric_members_cow.cc \ -+ eh_exception.cc \ -+ eh_catch.cc \ -+ int128.S \ -+ eh_alloc48.cc \ -+ ${inst_sources} ++ ios_init.cc \ ++ locale_facets.cc + +sources80 = \ -+ ios_failure80.cc \ -+ locale_facets80.cc -+ -+sources110 = \ -+ locale_facets80.cc ++ char8_t-rtti.S \ ++ ios_failure.cc + -+libnonshared98convenience48_la_SOURCES = $(sources) $(sources4880) $(sources48) -+libnonshared98convenience80_la_SOURCES = $(sources) $(sources4880) $(sources80) ++sources110 = ++libnonshared98convenience80_la_SOURCES = $(sources) $(sources80) +libnonshared98convenience110_la_SOURCES = $(sources) $(sources110) + +# AM_CXXFLAGS needs to be in each subdirectory so that it can be @@ -13394,9 +9575,6 @@ index 000000000..186594985 +libnonshared98convenience110.la: $(libnonshared98convenience110_la_OBJECTS) $(libnonshared98convenience110_la_DEPENDENCIES) $(EXTRA_libnonshared98convenience110_la_DEPENDENCIES) + $(AM_V_CXXLD)$(CXXLINK) $(libnonshared98convenience110_la_OBJECTS) $(libnonshared98convenience110_la_LIBADD) $(LIBS) + -+libnonshared98convenience48.la: $(libnonshared98convenience48_la_OBJECTS) $(libnonshared98convenience48_la_DEPENDENCIES) $(EXTRA_libnonshared98convenience48_la_DEPENDENCIES) -+ $(AM_V_CXXLD)$(CXXLINK) $(libnonshared98convenience48_la_OBJECTS) $(libnonshared98convenience48_la_LIBADD) $(LIBS) -+ +libnonshared98convenience80.la: $(libnonshared98convenience80_la_OBJECTS) $(libnonshared98convenience80_la_DEPENDENCIES) $(EXTRA_libnonshared98convenience80_la_DEPENDENCIES) + $(AM_V_CXXLD)$(CXXLINK) $(libnonshared98convenience80_la_OBJECTS) $(libnonshared98convenience80_la_LIBADD) $(LIBS) + @@ -13606,71 +9784,16 @@ index 000000000..186594985 +vpath % $(top_srcdir)/src/nonshared98 +vpath % $(top_srcdir) + -+collate_members.lo: collate_members.cc -+ $(LTCXXCOMPILE) -I. -c $< -+messages_members.lo: messages_members.cc -+ $(LTCXXCOMPILE) -I. -c $< -+monetary_members.lo: monetary_members.cc -+ $(LTCXXCOMPILE) -I. -c $< -+numeric_members.lo: numeric_members.cc -+ $(LTCXXCOMPILE) -I. -c $< -+numeric_members_cow.lo: numeric_members_cow.cc -+ $(LTCXXCOMPILE) -I. -c $< -+# Use special rules to compile with -fimplicit-templates. -+c++locale.lo: c++locale.cc -+ $(LTCXXCOMPILE) -I. -fimplicit-templates -c $< -+c++locale.o: c++locale.cc -+ $(CXXCOMPILE) -I. -fimplicit-templates -c $< -+ +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: -diff --git a/libstdc++-v3/src/nonshared98/c++locale.cc b/libstdc++-v3/src/nonshared98/c++locale.cc -new file mode 100644 -index 000000000..7f5ab3a72 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared98/c++locale.cc -@@ -0,0 +1,33 @@ -+// Copyright (C) 2016-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_NONSHARED_CXX98 1 -+#include "../c++98/c++locale.cc" -+asm (".hidden _ZNKSt8Catalogs6_M_getEi"); -+asm (".hidden _ZNSt8Catalogs6_M_addEPKcSt6locale"); -+asm (".hidden _ZNSt8Catalogs8_M_eraseEi"); -+asm (".hidden _ZNSt8CatalogsD1Ev"); -+asm (".hidden _ZNSt8CatalogsD2Ev"); -+asm (".hidden _ZSt12get_catalogsv"); -+//asm (".hidden _ZN9__gnu_cxx13__scoped_lockD1Ev"); -+//asm (".hidden _ZN9__gnu_cxx13__scoped_lockD2Ev"); -+//asm (".hidden _ZNSt6vectorIPSt12Catalog_infoSaIS1_EE17_M_realloc_insertEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_"); diff --git a/libstdc++-v3/src/nonshared98/char8_t-rtti.S b/libstdc++-v3/src/nonshared98/char8_t-rtti.S new file mode 100644 -index 000000000..a307d183b +index 000000000..b44e53f2b --- /dev/null +++ b/libstdc++-v3/src/nonshared98/char8_t-rtti.S @@ -0,0 +1,166 @@ -+/* Copyright (C) 2012-2023 Free Software Foundation, Inc. ++/* Copyright (C) 2012-2024 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 @@ -13776,220 +9899,73 @@ index 000000000..a307d183b +#ifndef SECTION3 +#define SECTION3(x).section .gnu.linkonce.r.x,"a",@progbits +#endif -+#ifndef STRING -+#define STRING .string -+#endif -+ -+ .weak SYM(_ZTIPKDu) -+ SECTION1(_ZTIPKDu) -+ ALIGN1 -+ .type SYM(_ZTIPKDu), OBJECT -+ .size SYM(_ZTIPKDu), SIZE1 -+_ZTIPKDu: -+ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF -+ POINTER SYM(_ZTSPKDu) -+ FLAGS 1 -+ PAD -+ POINTER SYM(_ZTIDu) -+ .weak SYM(_ZTIPDu) -+ SECTION1(_ZTIPDu) -+ ALIGN1 -+ .type SYM(_ZTIPDu), OBJECT -+ .size SYM(_ZTIPDu), SIZE1 -+_ZTIPDu: -+ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF -+ POINTER SYM(_ZTSPDu) -+ FLAGS 0 -+ PAD -+ POINTER SYM(_ZTIDu) -+ .weak SYM(_ZTIDu) -+ SECTION2(_ZTIDu) -+ ALIGN2 -+ .type SYM(_ZTIDu), OBJECT -+ .size SYM(_ZTIDu), SIZE2 -+_ZTIDu: -+ POINTER SYM(_ZTVN10__cxxabiv123__fundamental_type_infoE)+OFF -+ POINTER SYM(_ZTSDu) -+ .weak SYM(_ZTSPKDu) -+ .hidden SYM(_ZTSPKDu) -+ SECTION3(_ZTSPKDu) -+ ALIGN3 -+ .type SYM(_ZTSPKDu), OBJECT -+ .size SYM(_ZTSPKDu), 5 -+_ZTSPKDu: -+ STRING "PKDu" -+ .weak SYM(_ZTSPDu) -+ .hidden SYM(_ZTSPDu) -+ SECTION3(_ZTSPDu) -+ ALIGN3 -+ .type SYM(_ZTSPDu), OBJECT -+ .size SYM(_ZTSPDu), 4 -+_ZTSPDu: -+ STRING "PDu" -+ .weak SYM(_ZTSDu) -+ .hidden SYM(_ZTSDu) -+ SECTION3(_ZTSDu) -+ ALIGN3 -+ .type SYM(_ZTSDu), OBJECT -+ .size SYM(_ZTSDu), 3 -+_ZTSDu: -+ STRING "Du" -+#endif -+ .section .note.GNU-stack,"",@progbits -diff --git a/libstdc++-v3/src/nonshared98/collate_members.cc b/libstdc++-v3/src/nonshared98/collate_members.cc -new file mode 100644 -index 000000000..294183755 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared98/collate_members.cc -@@ -0,0 +1,24 @@ -+// Copyright (C) 2012-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_USE_CXX11_ABI 1 -+#include "../c++98/collate_members.cc" -diff --git a/libstdc++-v3/src/nonshared98/eh_alloc48.cc b/libstdc++-v3/src/nonshared98/eh_alloc48.cc -new file mode 100644 -index 000000000..b57eaa601 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared98/eh_alloc48.cc -@@ -0,0 +1,36 @@ -+// -*- C++ -*- Allocate exception objects. -+// Copyright (C) 2001-2023 Free Software Foundation, Inc. -+// -+// This file is part of GCC. -+// -+// GCC 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. -+// -+// GCC 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. -+// -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+// This is derived from the C++ ABI for IA-64. Where we diverge -+// for cross-architecture compatibility are noted with "@@@". -+ -+#include -+ -+namespace __gnu_cxx -+{ -+ void -+ __freeres() -+ { -+ } -+} -diff --git a/libstdc++-v3/src/nonshared98/eh_catch.cc b/libstdc++-v3/src/nonshared98/eh_catch.cc -new file mode 100644 -index 000000000..8fda167ec ---- /dev/null -+++ b/libstdc++-v3/src/nonshared98/eh_catch.cc -@@ -0,0 +1,39 @@ -+// -*- C++ -*- Exception handling routines for catching. -+// Copyright (C) 2001-2023 Free Software Foundation, Inc. -+// -+// This file is part of GCC. -+// -+// GCC 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. -+// -+// GCC 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. -+// -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include -+#include "unwind-cxx.h" -+ -+using namespace __cxxabiv1; -+ -+int -+std::uncaught_exceptions() throw() -+{ -+#if __cpp_exceptions -+ __cxa_eh_globals *globals = __cxa_get_globals (); -+ return globals->uncaughtExceptions; -+#else -+ return 0; -+#endif -+} -diff --git a/libstdc++-v3/src/nonshared98/eh_exception.cc b/libstdc++-v3/src/nonshared98/eh_exception.cc -new file mode 100644 -index 000000000..7f33c2c65 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared98/eh_exception.cc -@@ -0,0 +1,24 @@ -+// Copyright (C) 1994-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . ++#ifndef STRING ++#define STRING .string ++#endif + -+#define _GLIBCXX_NONSHARED_CXX98 1 -+#include "../libsupc++/eh_exception.cc" ++ .weak SYM(_ZTIPKDu) ++ SECTION1(_ZTIPKDu) ++ ALIGN1 ++ .type SYM(_ZTIPKDu), OBJECT ++ .size SYM(_ZTIPKDu), SIZE1 ++_ZTIPKDu: ++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF ++ POINTER SYM(_ZTSPKDu) ++ FLAGS 1 ++ PAD ++ POINTER SYM(_ZTIDu) ++ .weak SYM(_ZTIPDu) ++ SECTION1(_ZTIPDu) ++ ALIGN1 ++ .type SYM(_ZTIPDu), OBJECT ++ .size SYM(_ZTIPDu), SIZE1 ++_ZTIPDu: ++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF ++ POINTER SYM(_ZTSPDu) ++ FLAGS 0 ++ PAD ++ POINTER SYM(_ZTIDu) ++ .weak SYM(_ZTIDu) ++ SECTION2(_ZTIDu) ++ ALIGN2 ++ .type SYM(_ZTIDu), OBJECT ++ .size SYM(_ZTIDu), SIZE2 ++_ZTIDu: ++ POINTER SYM(_ZTVN10__cxxabiv123__fundamental_type_infoE)+OFF ++ POINTER SYM(_ZTSDu) ++ .weak SYM(_ZTSPKDu) ++ .hidden SYM(_ZTSPKDu) ++ SECTION3(_ZTSPKDu) ++ ALIGN3 ++ .type SYM(_ZTSPKDu), OBJECT ++ .size SYM(_ZTSPKDu), 5 ++_ZTSPKDu: ++ STRING "PKDu" ++ .weak SYM(_ZTSPDu) ++ .hidden SYM(_ZTSPDu) ++ SECTION3(_ZTSPDu) ++ ALIGN3 ++ .type SYM(_ZTSPDu), OBJECT ++ .size SYM(_ZTSPDu), 4 ++_ZTSPDu: ++ STRING "PDu" ++ .weak SYM(_ZTSDu) ++ .hidden SYM(_ZTSDu) ++ SECTION3(_ZTSDu) ++ ALIGN3 ++ .type SYM(_ZTSDu), OBJECT ++ .size SYM(_ZTSDu), 3 ++_ZTSDu: ++ STRING "Du" ++#endif ++ .section .note.GNU-stack,"",@progbits diff --git a/libstdc++-v3/src/nonshared98/extfloat.S b/libstdc++-v3/src/nonshared98/extfloat.S new file mode 100644 -index 000000000..6e5cb29df +index 000000000..c6270e618 --- /dev/null +++ b/libstdc++-v3/src/nonshared98/extfloat.S @@ -0,0 +1,547 @@ -+/* Copyright (C) 2012-2023 Free Software Foundation, Inc. ++/* Copyright (C) 2012-2024 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 @@ -14472,523 +10448,77 @@ index 000000000..6e5cb29df + .type SYM(_ZTSPDF64x), OBJECT + .size SYM(_ZTSPDF64x), 7 +_ZTSPDF64x: -+ STRING "PDF64x" -+ .weak SYM(_ZTSDF64x) -+ .hidden SYM(_ZTSDF64x) -+ SECTION3(_ZTSDF64x) -+ ALIGN3 -+ .type SYM(_ZTSDF64x), OBJECT -+ .size SYM(_ZTSDF64x), 6 -+_ZTSDF64x: -+ STRING "DF64x" -+ .weak SYM(_ZTIPKDF128_) -+ SECTION1(_ZTIPKDF128_) -+ ALIGN1 -+ .type SYM(_ZTIPKDF128_), OBJECT -+ .size SYM(_ZTIPKDF128_), SIZE1 -+_ZTIPKDF128_: -+ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF -+ POINTER SYM(_ZTSPKDF128_) -+ FLAGS 1 -+ PAD -+ POINTER SYM(_ZTIDF128_) -+ .weak SYM(_ZTIPDF128_) -+ SECTION1(_ZTIPDF128_) -+ ALIGN1 -+ .type SYM(_ZTIPDF128_), OBJECT -+ .size SYM(_ZTIPDF128_), SIZE1 -+_ZTIPDF128_: -+ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF -+ POINTER SYM(_ZTSPDF128_) -+ FLAGS 0 -+ PAD -+ POINTER SYM(_ZTIDF128_) -+ .weak SYM(_ZTIDF128_) -+ SECTION2(_ZTIDF128_) -+ ALIGN2 -+ .type SYM(_ZTIDF128_), OBJECT -+ .size SYM(_ZTIDF128_), SIZE2 -+_ZTIDF128_: -+ POINTER SYM(_ZTVN10__cxxabiv123__fundamental_type_infoE)+OFF -+ POINTER SYM(_ZTSDF128_) -+ .weak SYM(_ZTSPKDF128_) -+ .hidden SYM(_ZTSPKDF128_) -+ SECTION3(_ZTSPKDF128_) -+ ALIGN3 -+ .type SYM(_ZTSPKDF128_), OBJECT -+ .size SYM(_ZTSPKDF128_), 9 -+_ZTSPKDF128_: -+ STRING "PKDF128_" -+ .weak SYM(_ZTSPDF128_) -+ .hidden SYM(_ZTSPDF128_) -+ SECTION3(_ZTSPDF128_) -+ ALIGN3 -+ .type SYM(_ZTSPDF128_), OBJECT -+ .size SYM(_ZTSPDF128_), 8 -+_ZTSPDF128_: -+ STRING "PDF128_" -+ .weak SYM(_ZTSDF128_) -+ .hidden SYM(_ZTSDF128_) -+ SECTION3(_ZTSDF128_) -+ ALIGN3 -+ .type SYM(_ZTSDF128_), OBJECT -+ .size SYM(_ZTSDF128_), 7 -+_ZTSDF128_: -+ STRING "DF128_" -+ .section .note.GNU-stack,"",@progbits -diff --git a/libstdc++-v3/src/nonshared98/float128.S b/libstdc++-v3/src/nonshared98/float128.S -new file mode 100644 -index 000000000..aaba5e3a6 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared98/float128.S -@@ -0,0 +1,162 @@ -+/* Copyright (C) 2012-2023 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. -+ -+ Under Section 7 of GPL version 3, you are granted additional -+ permissions described in the GCC Runtime Library Exception, version -+ 3.1, as published by the Free Software Foundation. -+ -+ You should have received a copy of the GNU General Public License and -+ a copy of the GCC Runtime Library Exception along with this program; -+ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+ . */ -+ -+#if defined __x86_64__ || defined __i386__ || defined __ia64__ -+#ifdef __i386__ -+#define ALIGN1 .align 4 -+#elif defined __x86_64__ -+#define ALIGN1 .align 32 -+#define ALIGN2 .align 16 -+#elif defined __ia64__ -+#define ALIGN1 .align 8 -+#define ALIGN3 .align 8 -+#define SECTION3(x).section .gnu.linkonce.s.x,"aws",@progbits -+#define POINTER data8 -+#define FLAGS data4 -+#define PAD .skip 4 -+#define STRING stringz -+#elif defined __powerpc64__ -+#define ALIGN1 .align 3 -+#define ALIGN3 .align 3 -+#elif defined __powerpc__ -+#define ALIGN1 .align 2 -+#define ALIGN3 .align 2 -+#define SECTION2(x).section .gnu.linkonce.s.x,"aw",@progbits -+#define SECTION3(x)SECTION2(x) -+#elif defined __aarch64__ -+#define ALIGN1 .align 3 -+#define ALIGN3 .align 3 -+#define POINTER .xword -+#define FLAGS .word -+#define OBJECT %object -+#elif defined __s390x__ -+#define ALIGN1 .align 8 -+#define ALIGN3 .align 2 -+#elif defined __s390__ -+#define ALIGN1 .align 4 -+#define ALIGN3 .align 2 -+#endif -+#if defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __ia64__ || defined __aarch64__ -+#define SIZE1 32 -+#define SIZE2 16 -+#define OFF 16 -+#ifndef POINTER -+#define POINTER .quad -+#endif -+#ifndef FLAGS -+#define FLAGS .long -+#endif -+#ifndef PAD -+#define PAD .zero 4 -+#endif -+#else -+#define SIZE1 16 -+#define SIZE2 8 -+#define OFF 8 -+#ifndef POINTER -+#define POINTER .long -+#endif -+#ifndef FLAGS -+#define FLAGS .long -+#endif -+#ifndef PAD -+#define PAD -+#endif -+#endif -+#ifndef SYM -+#define SYM(x)x -+#endif -+#ifndef ALIGN2 -+#define ALIGN2 ALIGN1 -+#endif -+#ifndef ALIGN3 -+#define ALIGN3 -+#endif -+#ifndef OBJECT -+#define OBJECT @object -+#endif -+#ifndef SECTION1 -+#define SECTION1(x).section .gnu.linkonce.d.rel.ro.x,"aw",@progbits -+#endif -+#ifndef SECTION2 -+#define SECTION2(x)SECTION1(x) -+#endif -+#ifndef SECTION3 -+#define SECTION3(x).section .gnu.linkonce.r.x,"a",@progbits -+#endif -+#ifndef STRING -+#define STRING .string -+#endif -+ -+ .weak SYM(_ZTIPKg) -+ SECTION1(_ZTIPKg) ++ STRING "PDF64x" ++ .weak SYM(_ZTSDF64x) ++ .hidden SYM(_ZTSDF64x) ++ SECTION3(_ZTSDF64x) ++ ALIGN3 ++ .type SYM(_ZTSDF64x), OBJECT ++ .size SYM(_ZTSDF64x), 6 ++_ZTSDF64x: ++ STRING "DF64x" ++ .weak SYM(_ZTIPKDF128_) ++ SECTION1(_ZTIPKDF128_) + ALIGN1 -+ .type SYM(_ZTIPKg), OBJECT -+ .size SYM(_ZTIPKg), SIZE1 -+_ZTIPKg: ++ .type SYM(_ZTIPKDF128_), OBJECT ++ .size SYM(_ZTIPKDF128_), SIZE1 ++_ZTIPKDF128_: + POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF -+ POINTER SYM(_ZTSPKg) ++ POINTER SYM(_ZTSPKDF128_) + FLAGS 1 + PAD -+ POINTER SYM(_ZTIg) -+ .weak SYM(_ZTIPg) -+ SECTION1(_ZTIPg) ++ POINTER SYM(_ZTIDF128_) ++ .weak SYM(_ZTIPDF128_) ++ SECTION1(_ZTIPDF128_) + ALIGN1 -+ .type SYM(_ZTIPg), OBJECT -+ .size SYM(_ZTIPg), SIZE1 -+_ZTIPg: ++ .type SYM(_ZTIPDF128_), OBJECT ++ .size SYM(_ZTIPDF128_), SIZE1 ++_ZTIPDF128_: + POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF -+ POINTER SYM(_ZTSPg) ++ POINTER SYM(_ZTSPDF128_) + FLAGS 0 + PAD -+ POINTER SYM(_ZTIg) -+ .weak SYM(_ZTIg) -+ SECTION2(_ZTIg) ++ POINTER SYM(_ZTIDF128_) ++ .weak SYM(_ZTIDF128_) ++ SECTION2(_ZTIDF128_) + ALIGN2 -+ .type SYM(_ZTIg), OBJECT -+ .size SYM(_ZTIg), SIZE2 -+_ZTIg: -+ POINTER SYM(_ZTVN10__cxxabiv123__fundamental_type_infoE)+OFF -+ POINTER SYM(_ZTSg) -+ .weak SYM(_ZTSPKg) -+ SECTION3(_ZTSPKg) -+ ALIGN3 -+ .type SYM(_ZTSPKg), OBJECT -+ .size SYM(_ZTSPKg), 4 -+_ZTSPKg: -+ STRING "PKg" -+ .weak SYM(_ZTSPg) -+ SECTION3(_ZTSPg) -+ ALIGN3 -+ .type SYM(_ZTSPg), OBJECT -+ .size SYM(_ZTSPg), 3 -+_ZTSPg: -+ STRING "Pg" -+ .weak SYM(_ZTSg) -+ SECTION3(_ZTSg) -+ ALIGN3 -+ .type SYM(_ZTSg), OBJECT -+ .size SYM(_ZTSg), 2 -+_ZTSg: -+ STRING "g" -+#endif -+ .section .note.GNU-stack,"",@progbits -diff --git a/libstdc++-v3/src/nonshared98/int128.S b/libstdc++-v3/src/nonshared98/int128.S -new file mode 100644 -index 000000000..99d94edee ---- /dev/null -+++ b/libstdc++-v3/src/nonshared98/int128.S -@@ -0,0 +1,154 @@ -+/* Copyright (C) 2012-2023 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. -+ -+ Under Section 7 of GPL version 3, you are granted additional -+ permissions described in the GCC Runtime Library Exception, version -+ 3.1, as published by the Free Software Foundation. -+ -+ You should have received a copy of the GNU General Public License and -+ a copy of the GCC Runtime Library Exception along with this program; -+ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+ . */ -+ -+#if defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __ia64__ || defined __aarch64__ \ -+ /* || defined __i386__ || defined __powerpc__ || defined __s390__ */ -+#ifdef __i386__ -+#define ALIGN1 .align 4 -+#elif defined __x86_64__ -+#define ALIGN1 .align 32 -+#define ALIGN2 .align 16 -+#elif defined __ia64__ -+#define ALIGN1 .align 8 -+#define ALIGN3 .align 8 -+#define SECTION3(x).section .gnu.linkonce.s.x,"aws",@progbits -+#define POINTER data8 -+#define FLAGS data4 -+#define PAD .skip 4 -+#define STRING stringz -+#elif defined __powerpc64__ -+#define ALIGN1 .align 3 -+#define ALIGN3 .align 3 -+#elif defined __powerpc__ -+#define ALIGN1 .align 2 -+#define ALIGN3 .align 2 -+#define SECTION2(x).section .gnu.linkonce.s.x,"aw",@progbits -+#define SECTION3(x)SECTION2(x) -+#elif defined __aarch64__ -+#define ALIGN1 .align 3 -+#define ALIGN3 .align 3 -+#define POINTER .xword -+#define FLAGS .word -+#define OBJECT %object -+#elif defined __s390x__ -+#define ALIGN1 .align 8 -+#define ALIGN3 .align 2 -+#elif defined __s390__ -+#define ALIGN1 .align 4 -+#define ALIGN3 .align 2 -+#endif -+#if defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __ia64__ || defined __aarch64__ -+#define SIZE1 32 -+#define SIZE2 16 -+#define OFF 16 -+#ifndef POINTER -+#define POINTER .quad -+#endif -+#ifndef FLAGS -+#define FLAGS .long -+#endif -+#ifndef PAD -+#define PAD .zero 4 -+#endif -+#else -+#define SIZE1 16 -+#define SIZE2 8 -+#define OFF 8 -+#ifndef POINTER -+#define POINTER .long -+#endif -+#ifndef FLAGS -+#define FLAGS .long -+#endif -+#ifndef PAD -+#define PAD -+#endif -+#endif -+#ifndef SYM -+#define SYM(x)x -+#endif -+#ifndef ALIGN2 -+#define ALIGN2 ALIGN1 -+#endif -+#ifndef ALIGN3 -+#define ALIGN3 -+#endif -+#ifndef OBJECT -+#define OBJECT @object -+#endif -+#ifndef SECTION1 -+#define SECTION1(x).section .gnu.linkonce.d.rel.ro.x,"aw",@progbits -+#endif -+#ifndef SECTION2 -+#define SECTION2(x)SECTION1(x) -+#endif -+#ifndef SECTION3 -+#define SECTION3(x).section .gnu.linkonce.r.x,"a",@progbits -+#endif -+#ifndef STRING -+#define STRING .string -+#endif -+ -+ .weak SYM(_ZTSPKn) -+ SECTION3(_ZTSPKn) -+ ALIGN3 -+ .type SYM(_ZTSPKn), OBJECT -+ .size SYM(_ZTSPKn), 4 -+_ZTSPKn: -+ STRING "PKn" -+ .weak SYM(_ZTSPn) -+ SECTION3(_ZTSPn) -+ ALIGN3 -+ .type SYM(_ZTSPn), OBJECT -+ .size SYM(_ZTSPn), 3 -+_ZTSPn: -+ STRING "Pn" -+ .weak SYM(_ZTSn) -+ SECTION3(_ZTSn) -+ ALIGN3 -+ .type SYM(_ZTSn), OBJECT -+ .size SYM(_ZTSn), 2 -+_ZTSn: -+ STRING "n" -+ .weak SYM(_ZTSPKo) -+ SECTION3(_ZTSPKo) -+ ALIGN3 -+ .type SYM(_ZTSPKo), OBJECT -+ .size SYM(_ZTSPKo), 4 -+_ZTSPKo: -+ STRING "PKo" -+ .weak SYM(_ZTSPo) -+ SECTION3(_ZTSPo) -+ ALIGN3 -+ .type SYM(_ZTSPo), OBJECT -+ .size SYM(_ZTSPo), 3 -+_ZTSPo: -+ STRING "Po" -+ .weak SYM(_ZTSo) -+ SECTION3(_ZTSo) -+ ALIGN3 -+ .type SYM(_ZTSo), OBJECT -+ .size SYM(_ZTSo), 2 -+_ZTSo: -+ STRING "o" -+#endif -+ .section .note.GNU-stack,"",@progbits -diff --git a/libstdc++-v3/src/nonshared98/ios_failure.cc b/libstdc++-v3/src/nonshared98/ios_failure.cc -new file mode 100644 -index 000000000..23c69df08 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared98/ios_failure.cc -@@ -0,0 +1,35 @@ -+// Copyright (C) 2019-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include "../c++98/ios_failure.cc" -+asm (".hidden _ZNKSt8ios_base7failure4whatEv"); -+asm (".hidden _ZNSt8ios_base7failureC1ERKSs"); -+asm (".hidden _ZNSt8ios_base7failureC2ERKSs"); -+asm (".hidden _ZNSt8ios_base7failureD0Ev"); -+asm (".hidden _ZNSt8ios_base7failureD1Ev"); -+asm (".hidden _ZNSt8ios_base7failureD2Ev"); -+asm (".hidden _ZSt21__destroy_ios_failurePv"); -+asm (".hidden _ZSt23__construct_ios_failurePvPKc"); -+asm (".hidden _ZSt24__is_ios_failure_handlerPKN10__cxxabiv117__class_type_infoE"); -+asm (".hidden _ZTINSt8ios_base7failureE"); -+asm (".hidden _ZTSNSt8ios_base7failureE"); -+asm (".hidden _ZTVNSt8ios_base7failureE"); -diff --git a/libstdc++-v3/src/nonshared98/ios_failure80.cc b/libstdc++-v3/src/nonshared98/ios_failure80.cc -new file mode 100644 -index 000000000..22e7c128a ---- /dev/null -+++ b/libstdc++-v3/src/nonshared98/ios_failure80.cc -@@ -0,0 +1,27 @@ -+// Copyright (C) 2019-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_NONSHARED_CXX11_80 -+#include "../c++98/ios_failure.cc" -+asm (".hidden _ZSt21__destroy_ios_failurePv"); -+asm (".hidden _ZSt23__construct_ios_failurePvPKc"); -+asm (".hidden _ZSt24__is_ios_failure_handlerPKN10__cxxabiv117__class_type_infoE"); -diff --git a/libstdc++-v3/src/nonshared98/ios_init.cc b/libstdc++-v3/src/nonshared98/ios_init.cc -new file mode 100644 -index 000000000..173d4e62d ---- /dev/null -+++ b/libstdc++-v3/src/nonshared98/ios_init.cc -@@ -0,0 +1,38 @@ -+// Copyright (C) 1997-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+// -+// ISO C++ 14882: 27.4 Iostreams base classes -+// -+ -+#include -+ -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+_GLIBCXX_BEGIN_NAMESPACE_VERSION -+ -+#include "../c++98/ios_base_init.h" -+ -+ void ios_base_library_init() {} -+ -+_GLIBCXX_END_NAMESPACE_VERSION -+} // namespace -diff --git a/libstdc++-v3/src/nonshared98/istream-string.cc b/libstdc++-v3/src/nonshared98/istream-string.cc ++ .type SYM(_ZTIDF128_), OBJECT ++ .size SYM(_ZTIDF128_), SIZE2 ++_ZTIDF128_: ++ POINTER SYM(_ZTVN10__cxxabiv123__fundamental_type_infoE)+OFF ++ POINTER SYM(_ZTSDF128_) ++ .weak SYM(_ZTSPKDF128_) ++ .hidden SYM(_ZTSPKDF128_) ++ SECTION3(_ZTSPKDF128_) ++ ALIGN3 ++ .type SYM(_ZTSPKDF128_), OBJECT ++ .size SYM(_ZTSPKDF128_), 9 ++_ZTSPKDF128_: ++ STRING "PKDF128_" ++ .weak SYM(_ZTSPDF128_) ++ .hidden SYM(_ZTSPDF128_) ++ SECTION3(_ZTSPDF128_) ++ ALIGN3 ++ .type SYM(_ZTSPDF128_), OBJECT ++ .size SYM(_ZTSPDF128_), 8 ++_ZTSPDF128_: ++ STRING "PDF128_" ++ .weak SYM(_ZTSDF128_) ++ .hidden SYM(_ZTSDF128_) ++ SECTION3(_ZTSDF128_) ++ ALIGN3 ++ .type SYM(_ZTSDF128_), OBJECT ++ .size SYM(_ZTSDF128_), 7 ++_ZTSDF128_: ++ STRING "DF128_" ++ .section .note.GNU-stack,"",@progbits +diff --git a/libstdc++-v3/src/nonshared98/ios_failure.cc b/libstdc++-v3/src/nonshared98/ios_failure.cc new file mode 100644 -index 000000000..d42155e0a +index 000000000..086f34482 --- /dev/null -+++ b/libstdc++-v3/src/nonshared98/istream-string.cc -@@ -0,0 +1,23 @@ -+// Copyright (C) 2012-2023 Free Software Foundation, Inc. ++++ b/libstdc++-v3/src/nonshared98/ios_failure.cc +@@ -0,0 +1,27 @@ ++// Copyright (C) 2019-2024 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 @@ -15010,13 +10540,17 @@ index 000000000..d42155e0a +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+#include "../c++98/istream-string.cc" -diff --git a/libstdc++-v3/src/nonshared98/locale.cc b/libstdc++-v3/src/nonshared98/locale.cc ++#define _GLIBCXX_NONSHARED_CXX11_80 ++#include "../c++98/ios_failure.cc" ++asm (".hidden _ZSt21__destroy_ios_failurePv"); ++asm (".hidden _ZSt23__construct_ios_failurePvPKc"); ++asm (".hidden _ZSt24__is_ios_failure_handlerPKN10__cxxabiv117__class_type_infoE"); +diff --git a/libstdc++-v3/src/nonshared98/ios_init.cc b/libstdc++-v3/src/nonshared98/ios_init.cc new file mode 100644 -index 000000000..b7045c677 +index 000000000..173d4e62d --- /dev/null -+++ b/libstdc++-v3/src/nonshared98/locale.cc -@@ -0,0 +1,84 @@ ++++ b/libstdc++-v3/src/nonshared98/ios_init.cc +@@ -0,0 +1,38 @@ +// Copyright (C) 1997-2023 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free @@ -15039,110 +10573,29 @@ index 000000000..b7045c677 +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + -+#define _GLIBCXX_USE_CXX11_ABI 1 -+#include -+ -+namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) -+{ -+_GLIBCXX_BEGIN_NAMESPACE_VERSION -+ -+ const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] = -+ { -+ "LC_CTYPE", -+ "LC_NUMERIC", -+ "LC_TIME", -+ "LC_COLLATE", -+ "LC_MONETARY", -+ "LC_MESSAGES", -+ "LC_PAPER", -+ "LC_NAME", -+ "LC_ADDRESS", -+ "LC_TELEPHONE", -+ "LC_MEASUREMENT", -+ "LC_IDENTIFICATION" -+ }; ++// ++// ISO C++ 14882: 27.4 Iostreams base classes ++// + -+_GLIBCXX_END_NAMESPACE_VERSION -+} // namespace ++#include + +namespace std _GLIBCXX_VISIBILITY(default) +{ +_GLIBCXX_BEGIN_NAMESPACE_VERSION + -+ const char* const* const locale::_S_categories = __gnu_cxx::category_names; ++#include "../c++98/ios_base_init.h" + -+ _GLIBCXX_DEFAULT_ABI_TAG -+ string -+ locale::name() const -+ { -+ string __ret; -+ if (!_M_impl->_M_names[0]) -+ __ret = '*'; -+ else if (_M_impl->_M_check_same_name()) -+ __ret = _M_impl->_M_names[0]; -+ else -+ { -+ __ret.reserve(128); -+ __ret += _S_categories[0]; -+ __ret += '='; -+ __ret += _M_impl->_M_names[0]; -+ for (size_t __i = 1; __i < _S_categories_size; ++__i) -+ { -+ __ret += ';'; -+ __ret += _S_categories[__i]; -+ __ret += '='; -+ __ret += _M_impl->_M_names[__i]; -+ } -+ } -+ return __ret; -+ } ++ void ios_base_library_init() {} + +_GLIBCXX_END_NAMESPACE_VERSION +} // namespace -+ -+asm (".hidden _ZNSt6locale13_S_categoriesE"); diff --git a/libstdc++-v3/src/nonshared98/locale_facets.cc b/libstdc++-v3/src/nonshared98/locale_facets.cc new file mode 100644 -index 000000000..e026587fe +index 000000000..04de4db13 --- /dev/null +++ b/libstdc++-v3/src/nonshared98/locale_facets.cc -@@ -0,0 +1,29 @@ -+// Copyright (C) 1997-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_NONSHARED_CXX11 -+#include "../c++98/locale_facets.cc" -+#if defined(__i386__) || (defined(__powerpc__) && !defined(__powerpc64__)) -+asm (".hidden _ZSt22__verify_grouping_implPKcjS0_j"); -+#else -+asm (".hidden _ZSt22__verify_grouping_implPKcmS0_m"); -+#endif -diff --git a/libstdc++-v3/src/nonshared98/locale_facets80.cc b/libstdc++-v3/src/nonshared98/locale_facets80.cc -new file mode 100644 -index 000000000..fcaacf522 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared98/locale_facets80.cc @@ -0,0 +1,24 @@ -+// Copyright (C) 1997-2023 Free Software Foundation, Inc. ++// Copyright (C) 1997-2024 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 @@ -15166,210 +10619,25 @@ index 000000000..fcaacf522 + +#define _GLIBCXX_NONSHARED_CXX11_80 +#include "../c++98/locale_facets.cc" -diff --git a/libstdc++-v3/src/nonshared98/messages_members.cc b/libstdc++-v3/src/nonshared98/messages_members.cc -new file mode 100644 -index 000000000..966df2d0a ---- /dev/null -+++ b/libstdc++-v3/src/nonshared98/messages_members.cc -@@ -0,0 +1,24 @@ -+// Copyright (C) 2012-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_USE_CXX11_ABI 1 -+#include "../c++98/messages_members.cc" -diff --git a/libstdc++-v3/src/nonshared98/misc-inst.cc b/libstdc++-v3/src/nonshared98/misc-inst.cc -new file mode 100644 -index 000000000..9ded7c66e ---- /dev/null -+++ b/libstdc++-v3/src/nonshared98/misc-inst.cc -@@ -0,0 +1,23 @@ -+// Copyright (C) 1997-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#include "../c++98/misc-inst.cc" -diff --git a/libstdc++-v3/src/nonshared98/monetary_members.cc b/libstdc++-v3/src/nonshared98/monetary_members.cc -new file mode 100644 -index 000000000..06cbb3dc3 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared98/monetary_members.cc -@@ -0,0 +1,24 @@ -+// Copyright (C) 2012-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_USE_CXX11_ABI 1 -+#include "../c++98/monetary_members.cc" -diff --git a/libstdc++-v3/src/nonshared98/numeric_members.cc b/libstdc++-v3/src/nonshared98/numeric_members.cc -new file mode 100644 -index 000000000..fa5cf1f91 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared98/numeric_members.cc -@@ -0,0 +1,24 @@ -+// Copyright (C) 2012-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_USE_CXX11_ABI 1 -+#include "../c++98/numeric_members.cc" -diff --git a/libstdc++-v3/src/nonshared98/numeric_members_cow.cc b/libstdc++-v3/src/nonshared98/numeric_members_cow.cc -new file mode 100644 -index 000000000..aeeaba246 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared98/numeric_members_cow.cc -@@ -0,0 +1,33 @@ -+// Copyright (C) 2012-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . -+ -+#define _GLIBCXX_USE_CXX11_ABI 0 -+#include "../c++98/numeric_members.cc" -+asm (".hidden _ZNSt8numpunctIcE22_M_initialize_numpunctEP15__locale_struct"); -+asm (".hidden _ZNSt8numpunctIcED0Ev"); -+asm (".hidden _ZNSt8numpunctIcED1Ev"); -+asm (".hidden _ZNSt8numpunctIcED2Ev"); -+asm (".hidden _ZNSt8numpunctIwE22_M_initialize_numpunctEP15__locale_struct"); -+asm (".hidden _ZNSt8numpunctIwED0Ev"); -+asm (".hidden _ZNSt8numpunctIwED1Ev"); -+asm (".hidden _ZNSt8numpunctIwED2Ev"); -+asm (".hidden _ZSt24__narrow_multibyte_charsPKcP15__locale_struct"); -diff --git a/libstdc++-v3/src/nonshared98/snprintf_lite-inst.cc b/libstdc++-v3/src/nonshared98/snprintf_lite-inst.cc -new file mode 100644 -index 000000000..39e9602a2 ---- /dev/null -+++ b/libstdc++-v3/src/nonshared98/snprintf_lite-inst.cc -@@ -0,0 +1,41 @@ -+// Copyright (C) 2012-2023 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. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// . +diff --git a/libstdc++-v3/src/shared/hashtable-aux.cc b/libstdc++-v3/src/shared/hashtable-aux.cc +index cfbc7fab9..439a8b6fe 100644 +--- a/libstdc++-v3/src/shared/hashtable-aux.cc ++++ b/libstdc++-v3/src/shared/hashtable-aux.cc +@@ -22,6 +22,9 @@ + // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + // . + ++#ifndef HASHTABLE_AUX_CC ++#define HASHTABLE_AUX_CC 1 + -+#include + namespace __detail + { + // The sentinel value is kept only for abi backward compatibility. +@@ -90,3 +93,5 @@ namespace __detail + #endif + }; + } // namespace __detail + -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+ template -+ int -+ __int_to_char(char*, -+#ifdef _GLIBCXX_USE_LONG_LONG -+ unsigned long long, -+#else -+ unsigned long, -+#endif -+ const char*, ios_base::fmtflags, bool); -+} -+#ifdef _GLIBCXX_USE_LONG_LONG -+asm (".hidden _ZSt13__int_to_charIcyEiPT_T0_PKS0_St13_Ios_Fmtflagsb"); -+#else -+asm (".hidden _ZSt13__int_to_charIcmEiPT_T0_PKS0_St13_Ios_Fmtflagsb"); +#endif diff --git a/libstdc++-v3/testsuite/experimental/simd/driver.sh b/libstdc++-v3/testsuite/experimental/simd/driver.sh old mode 100755 diff --git a/gcc-14.spec b/gcc-14.spec index d95ab9844a396a9a8a19d863b3333771e1bf48f7..da2064a86a1b1910dff4eae151d5c1ee1e44f21d 100644 --- a/gcc-14.spec +++ b/gcc-14.spec @@ -90,7 +90,7 @@ Summary: Various compilers (C, C++, Objective-C, ...) Name: %{?_scl_prefix}gcc%{gcc_ver} Version: 14.2.1 -Release: 4 +Release: 5 # libgcc, libgfortran, libgomp, libstdc++ and crtstuff have # GCC Runtime Exception. License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD @@ -174,7 +174,7 @@ Patch1002: GCC14-1002-change-gcc-version.patch Patch1003: GCC14-1003-i386-Add-non-optimize-prefetchi-intrins.patch # On ARM EABI systems, we do want -gnueabi to be part of the # target triple. -%global nonsharedver 48 +%global nonsharedver 80 %ifnarch %{arm} %global _gnu %{nil} %else @@ -285,9 +285,6 @@ with the GNU Compiler Collection. Summary: Static Fortran libraries Requires: %{?_scl_prefix}gcc%{gcc_ver} = %{version}-%{release} %if %{build_libquadmath} -%if 0%{!?scl:1} -Requires: libquadmath -%endif Requires: %{?_scl_prefix}libquadmath%{gcc_ver} = %{version}-%{release} %endif @@ -911,11 +908,7 @@ INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 -lstdc rm -f libquadmath.so echo '/* GNU ld script */ %{oformat} -%if 0%{!?scl:1} INPUT ( %{_prefix}/%{_lib}/libquadmath.so.0 )' > libquadmath.so -%else -INPUT ( %{_root_prefix}/%{_lib}/libquadmath.so.0 )' > libquadmath.so -%endif %endif %if %{build_libasan} @@ -1007,11 +1000,7 @@ INPUT ( %{_prefix}/lib64/libgccjit.so.0 )' > 64/libgccjit.so rm -f 64/libquadmath.so echo '/* GNU ld script */ %{oformat2} -%if 0%{!?scl:1} INPUT ( %{_prefix}/lib64/libquadmath.so.0 )' > 64/libquadmath.so -%else -INPUT ( %{_root_prefix}/lib64/libquadmath.so.0 )' > 64/libquadmath.so -%endif %endif %if %{build_libitm} rm -f libitm.so @@ -1093,11 +1082,7 @@ INPUT ( %{_prefix}/lib/libgccjit.so.0 )' > 32/libgccjit.so rm -f 32/libquadmath.so echo '/* GNU ld script */ %{oformat2} -%if 0%{!?scl:1} INPUT ( %{_prefix}/lib/libquadmath.so.0 )' > 32/libquadmath.so -%else -INPUT ( %{_root_prefix}/lib/libquadmath.so.0 )' > 32/libquadmath.so -%endif %endif %if %{build_libitm} rm -f libitm.so @@ -1228,10 +1213,8 @@ chrpath -d %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/pl chmod 755 %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcp1plugin.so* chrpath -d %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcp1plugin.so* %if %{build_libquadmath} -%if 0%{!?scl:1} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libquadmath.so.0.* %endif -%endif %if %{build_libitm} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libitm.so.1.* %endif @@ -1359,9 +1342,6 @@ rm -f %{buildroot}%{_prefix}/%{_lib}/libvtv* || : rm -f %{buildroot}/lib/cpp rm -f %{buildroot}%{_prefix}/bin/{gccbug,gnatgcc*} rm -f %{buildroot}%{_prefix}/bin/%{gcc_target_platform}-gfortran -%if 0%{!?scl:1} -rm -f %{buildroot}%{_prefix}/bin/{*c++*,cc,cpp} -%endif rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gfortran || : %ifarch %{multilib_64_archs} @@ -2221,6 +2201,9 @@ end %doc rpm.doc/changelogs/libcc1/ChangeLog* %changelog +* Wed Aug 28 2024 zhaoshujian - 14.2.1-5 +- Change stdc++_nonshared_48 to stdc++_nonshared_80. + * Tue Aug 27 2024 zhaoshujian - 14.2.1-4 - [bugfix] Change libsupc++.a, libstdc++exp.a package path