diff --git a/GCC14-1001-libstdc++-compat.patch b/GCC14-1001-libstdc++-compat.patch new file mode 100644 index 0000000000000000000000000000000000000000..1bbdae5bb4348d6c3366e3992f2f769d81f174b8 --- /dev/null +++ b/GCC14-1001-libstdc++-compat.patch @@ -0,0 +1,10650 @@ +From 7ec360435ae547b830feeb49c0a0346649f1cf75 Mon Sep 17 00:00:00 2001 +From: zhaoshujian +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 +index 51a08bcc8..c75dda506 100644 +--- a/libstdc++-v3/acinclude.m4 ++++ b/libstdc++-v3/acinclude.m4 +@@ -49,7 +49,7 @@ AC_DEFUN([GLIBCXX_CONFIGURE], [ + # Keep these sync'd with the list in Makefile.am. The first provides an + # expandable list at autoconf time; the second provides an expandable list + # (i.e., shell variable) at configure time. +- m4_define([glibcxx_SUBDIRS],[include libsupc++ src src/c++98 src/c++11 src/c++17 src/c++20 src/c++23 src/c++26 src/filesystem src/libbacktrace src/experimental doc po testsuite python]) ++ m4_define([glibcxx_SUBDIRS],[include libsupc++ src src/c++98 src/c++11 src/c++17 src/c++20 src/c++23 src/c++26 src/nonshared98 src/nonshared11 src/nonshared17 src/nonshared20 src/nonshared23 src/nonshared26 src/filesystem src/libbacktrace src/experimental doc po testsuite python]) + SUBDIRS='glibcxx_SUBDIRS' + + # These need to be absolute paths, yet at the same time need to +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 ++++ b/libstdc++-v3/config/locale/gnu/c_locale.cc +@@ -41,6 +41,7 @@ namespace std _GLIBCXX_VISIBILITY(default) + { + _GLIBCXX_BEGIN_NAMESPACE_VERSION + ++#ifndef _GLIBCXX_NONSHARED_CXX98 + template<> + void + __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err, +@@ -172,6 +173,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + } + return __changed; + } ++#endif + + struct _CatalogIdComp + { +@@ -255,6 +257,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + _GLIBCXX_END_NAMESPACE_VERSION + } // namespace + ++#ifndef _GLIBCXX_NONSHARED_CXX98 + namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) + { + _GLIBCXX_BEGIN_NAMESPACE_VERSION +@@ -294,3 +297,4 @@ _GLIBCXX_END_NAMESPACE_VERSION + extern "C" void ldbl (void) __attribute__ ((alias (#dbl))) + _GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct); + #endif // _GLIBCXX_LONG_DOUBLE_COMPAT ++#endif +diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure +old mode 100755 +new mode 100644 +index 21abaeb07..0a09feeae +--- a/libstdc++-v3/configure ++++ b/libstdc++-v3/configure +@@ -633,6 +633,8 @@ ac_subst_vars='am__EXEEXT_FALSE + am__EXEEXT_TRUE + LTLIBOBJS + LIBOBJS ++CCASFLAGS ++CCAS + get_gcc_base_ver + WARN_FLAGS + OPTIMIZE_CXXFLAGS +@@ -5531,7 +5533,7 @@ $as_echo "$ac_cv_path_EGREP" >&6; } + # expandable list at autoconf time; the second provides an expandable list + # (i.e., shell variable) at configure time. + +- SUBDIRS='include libsupc++ src src/c++98 src/c++11 src/c++17 src/c++20 src/c++23 src/c++26 src/filesystem src/libbacktrace src/experimental doc po testsuite python' ++ SUBDIRS='include libsupc++ src src/c++98 src/c++11 src/c++17 src/c++20 src/c++23 src/c++26 src/nonshared98 src/nonshared11 src/nonshared17 src/nonshared20 src/nonshared23 src/nonshared26 src/filesystem src/libbacktrace src/experimental doc po testsuite python' + + # These need to be absolute paths, yet at the same time need to + # canonicalize only relative paths, because then amd will not unmount +@@ -55688,7 +55690,8 @@ if test "${with_gcc_major_version_only+set}" = set; then : + fi + + +- ++CCAS='$(CXX)' ++CCASFLAGS='$(CXXFLAGS)' + + ac_config_files="$ac_config_files Makefile" + +@@ -55709,7 +55712,7 @@ ac_config_files="$ac_config_files src/libbacktrace/backtrace-supported.h" + # append it here. Only modify Makefiles that have just been created. + # + # Also, get rid of this simulated-VPATH thing that automake does. +-ac_config_files="$ac_config_files include/Makefile libsupc++/Makefile src/Makefile src/c++98/Makefile src/c++11/Makefile src/c++17/Makefile src/c++20/Makefile src/c++23/Makefile src/c++26/Makefile src/filesystem/Makefile src/libbacktrace/Makefile src/experimental/Makefile doc/Makefile po/Makefile testsuite/Makefile python/Makefile" ++ac_config_files="$ac_config_files include/Makefile libsupc++/Makefile src/Makefile src/c++98/Makefile src/c++11/Makefile src/c++17/Makefile src/c++20/Makefile src/c++23/Makefile src/c++26/Makefile src/nonshared98/Makefile src/nonshared11/Makefile src/nonshared17/Makefile src/nonshared20/Makefile src/nonshared23/Makefile src/nonshared26/Makefile src/filesystem/Makefile src/libbacktrace/Makefile src/experimental/Makefile doc/Makefile po/Makefile testsuite/Makefile python/Makefile" + + + ac_config_commands="$ac_config_commands generate-headers" +@@ -56970,6 +56973,12 @@ do + "src/c++20/Makefile") CONFIG_FILES="$CONFIG_FILES src/c++20/Makefile" ;; + "src/c++23/Makefile") CONFIG_FILES="$CONFIG_FILES src/c++23/Makefile" ;; + "src/c++26/Makefile") CONFIG_FILES="$CONFIG_FILES src/c++26/Makefile" ;; ++ "src/nonshared98/Makefile") CONFIG_FILES="$CONFIG_FILES src/nonshared98/Makefile" ;; ++ "src/nonshared11/Makefile") CONFIG_FILES="$CONFIG_FILES src/nonshared11/Makefile" ;; ++ "src/nonshared17/Makefile") CONFIG_FILES="$CONFIG_FILES src/nonshared17/Makefile" ;; ++ "src/nonshared20/Makefile") CONFIG_FILES="$CONFIG_FILES src/nonshared20/Makefile" ;; ++ "src/nonshared23/Makefile") CONFIG_FILES="$CONFIG_FILES src/nonshared23/Makefile" ;; ++ "src/nonshared26/Makefile") CONFIG_FILES="$CONFIG_FILES src/nonshared26/Makefile" ;; + "src/filesystem/Makefile") CONFIG_FILES="$CONFIG_FILES src/filesystem/Makefile" ;; + "src/libbacktrace/Makefile") CONFIG_FILES="$CONFIG_FILES src/libbacktrace/Makefile" ;; + "src/experimental/Makefile") CONFIG_FILES="$CONFIG_FILES src/experimental/Makefile" ;; +@@ -58483,6 +58492,72 @@ _EOF + ;; + "src/c++26/Makefile":F) cat > vpsed$$ << \_EOF + s!`test -f '$<' || echo '$(srcdir)/'`!! ++_EOF ++ sed -f vpsed$$ $ac_file > tmp$$ ++ mv tmp$$ $ac_file ++ rm vpsed$$ ++ echo 'MULTISUBDIR =' >> $ac_file ++ ml_norecursion=yes ++ . ${multi_basedir}/config-ml.in ++ { ml_norecursion=; unset ml_norecursion;} ++ ;; ++ "src/nonshared98/Makefile":F) cat > vpsed$$ << \_EOF ++s!`test -f '$<' || echo '$(srcdir)/'`!! ++_EOF ++ sed -f vpsed$$ $ac_file > tmp$$ ++ mv tmp$$ $ac_file ++ rm vpsed$$ ++ echo 'MULTISUBDIR =' >> $ac_file ++ ml_norecursion=yes ++ . ${multi_basedir}/config-ml.in ++ { ml_norecursion=; unset ml_norecursion;} ++ ;; ++ "src/nonshared11/Makefile":F) cat > vpsed$$ << \_EOF ++s!`test -f '$<' || echo '$(srcdir)/'`!! ++_EOF ++ sed -f vpsed$$ $ac_file > tmp$$ ++ mv tmp$$ $ac_file ++ rm vpsed$$ ++ echo 'MULTISUBDIR =' >> $ac_file ++ ml_norecursion=yes ++ . ${multi_basedir}/config-ml.in ++ { ml_norecursion=; unset ml_norecursion;} ++ ;; ++ "src/nonshared17/Makefile":F) cat > vpsed$$ << \_EOF ++s!`test -f '$<' || echo '$(srcdir)/'`!! ++_EOF ++ sed -f vpsed$$ $ac_file > tmp$$ ++ mv tmp$$ $ac_file ++ rm vpsed$$ ++ echo 'MULTISUBDIR =' >> $ac_file ++ ml_norecursion=yes ++ . ${multi_basedir}/config-ml.in ++ { ml_norecursion=; unset ml_norecursion;} ++ ;; ++ "src/nonshared20/Makefile":F) cat > vpsed$$ << \_EOF ++s!`test -f '$<' || echo '$(srcdir)/'`!! ++_EOF ++ sed -f vpsed$$ $ac_file > tmp$$ ++ mv tmp$$ $ac_file ++ rm vpsed$$ ++ echo 'MULTISUBDIR =' >> $ac_file ++ ml_norecursion=yes ++ . ${multi_basedir}/config-ml.in ++ { ml_norecursion=; unset ml_norecursion;} ++ ;; ++ "src/nonshared23/Makefile":F) cat > vpsed$$ << \_EOF ++s!`test -f '$<' || echo '$(srcdir)/'`!! ++_EOF ++ sed -f vpsed$$ $ac_file > tmp$$ ++ mv tmp$$ $ac_file ++ rm vpsed$$ ++ echo 'MULTISUBDIR =' >> $ac_file ++ ml_norecursion=yes ++ . ${multi_basedir}/config-ml.in ++ { ml_norecursion=; unset ml_norecursion;} ++ ;; ++ "src/nonshared26/Makefile":F) cat > vpsed$$ << \_EOF ++s!`test -f '$<' || echo '$(srcdir)/'`!! + _EOF + sed -f vpsed$$ $ac_file > tmp$$ + mv tmp$$ $ac_file +diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac +index 37396bd6e..907b8534f 100644 +--- a/libstdc++-v3/configure.ac ++++ b/libstdc++-v3/configure.ac +@@ -685,6 +685,11 @@ GLIBCXX_EXPORT_FLAGS + # Determine what GCC version number to use in filesystem paths. + GCC_BASE_VER + ++CCAS='$(CXX)' ++CCASFLAGS='$(CXXFLAGS)' ++AC_SUBST(CCAS) ++AC_SUBST(CCASFLAGS) ++ + dnl In autoconf 2.5x, AC_OUTPUT is replaced by four AC_CONFIG_* macros, + dnl which can all be called multiple times as needed, plus one (different) + dnl AC_OUTPUT macro. This one lists the files to be created: +diff --git a/libstdc++-v3/libsupc++/eh_exception.cc b/libstdc++-v3/libsupc++/eh_exception.cc +index 4c31981ab..744c45582 100644 +--- a/libstdc++-v3/libsupc++/eh_exception.cc ++++ b/libstdc++-v3/libsupc++/eh_exception.cc +@@ -26,6 +26,7 @@ + #include "exception" + #include + ++#ifndef _GLIBCXX_NONSHARED_CXX98 + std::exception::~exception() _GLIBCXX_TXN_SAFE_DYN _GLIBCXX_USE_NOEXCEPT { } + + std::bad_exception::~bad_exception() _GLIBCXX_TXN_SAFE_DYN +@@ -36,7 +37,7 @@ abi::__forced_unwind::~__forced_unwind() throw() { } + + abi::__foreign_exception::~__foreign_exception() throw() { } + +-const char* ++const char* + std::exception::what() const _GLIBCXX_TXN_SAFE_DYN _GLIBCXX_USE_NOEXCEPT + { + // NB: Another elegant option would be returning typeid(*this).name() +@@ -45,11 +46,12 @@ std::exception::what() const _GLIBCXX_TXN_SAFE_DYN _GLIBCXX_USE_NOEXCEPT + return "std::exception"; + } + +-const char* ++const char* + std::bad_exception::what() const _GLIBCXX_TXN_SAFE_DYN _GLIBCXX_USE_NOEXCEPT + { + return "std::bad_exception"; + } ++#endif + + // Transactional clones for the destructors and what(). + // what() is effectively transaction_pure, but we do not want to annotate it +diff --git a/libstdc++-v3/scripts/check_compile b/libstdc++-v3/scripts/check_compile +old mode 100755 +new mode 100644 +diff --git a/libstdc++-v3/scripts/check_performance b/libstdc++-v3/scripts/check_performance +old mode 100755 +new mode 100644 +diff --git a/libstdc++-v3/scripts/check_simd b/libstdc++-v3/scripts/check_simd +old mode 100755 +new mode 100644 +diff --git a/libstdc++-v3/scripts/create_testsuite_files b/libstdc++-v3/scripts/create_testsuite_files +old mode 100755 +new mode 100644 +diff --git a/libstdc++-v3/scripts/extract_symvers.in b/libstdc++-v3/scripts/extract_symvers.in +old mode 100755 +new mode 100644 +diff --git a/libstdc++-v3/scripts/gen_text_encoding_data.py b/libstdc++-v3/scripts/gen_text_encoding_data.py +old mode 100755 +new mode 100644 +diff --git a/libstdc++-v3/scripts/make_graph.py b/libstdc++-v3/scripts/make_graph.py +old mode 100755 +new mode 100644 +diff --git a/libstdc++-v3/scripts/testsuite_flags.in b/libstdc++-v3/scripts/testsuite_flags.in +old mode 100755 +new mode 100644 +diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am +index 37ba1491d..e93bcca57 100644 +--- a/libstdc++-v3/src/Makefile.am ++++ b/libstdc++-v3/src/Makefile.am +@@ -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 \ +- $(filesystem_dir) $(backtrace_dir) $(experimental_dir) ++ $(filesystem_dir) $(backtrace_dir) $(experimental_dir) \ ++ nonshared98 nonshared11 nonshared17 nonshared20 nonshared23 nonshared26 + + # Cross compiler support. + if VTV_CYGMIN +@@ -53,6 +54,9 @@ else + toolexeclib_LTLIBRARIES = libstdc++.la + endif + ++noinst_LTLIBRARIES = libstdc++_nonshared80.la \ ++ libstdc++_nonshared110.la ++ + if VTV_CYGMIN + vtv_stubs.cc: + rm -f $@ +@@ -120,6 +124,33 @@ endif + parallel_compat_sources = \ + compatibility-parallel_list.cc compatibility-parallel_list-2.cc + ++libstdc___nonshared80_la_SOURCES = ++ ++libstdc___nonshared80_la_LIBADD = \ ++ $(top_builddir)/src/nonshared98/libnonshared98convenience80.la \ ++ $(top_builddir)/src/nonshared11/libnonshared11convenience80.la \ ++ $(top_builddir)/src/nonshared17/libnonshared17convenience80.la \ ++ $(top_builddir)/src/nonshared20/libnonshared20convenience80.la ++ ++libstdc___nonshared80_la_DEPENDENCIES = \ ++ $(top_builddir)/src/nonshared98/libnonshared98convenience80.la \ ++ $(top_builddir)/src/nonshared11/libnonshared11convenience80.la \ ++ $(top_builddir)/src/nonshared17/libnonshared17convenience80.la \ ++ $(top_builddir)/src/nonshared20/libnonshared20convenience80.la ++ ++libstdc___nonshared110_la_SOURCES = ++ ++libstdc___nonshared110_la_LIBADD = \ ++ $(top_builddir)/src/nonshared98/libnonshared98convenience110.la \ ++ $(top_builddir)/src/nonshared11/libnonshared11convenience110.la \ ++ $(top_builddir)/src/nonshared17/libnonshared17convenience110.la \ ++ $(top_builddir)/src/nonshared20/libnonshared20convenience110.la ++ ++libstdc___nonshared110_la_DEPENDENCIES = \ ++ $(top_builddir)/src/nonshared98/libnonshared98convenience110.la \ ++ $(top_builddir)/src/nonshared11/libnonshared11convenience110.la \ ++ $(top_builddir)/src/nonshared17/libnonshared17convenience110.la \ ++ $(top_builddir)/src/nonshared20/libnonshared20convenience110.la + + cxx98_sources = \ + compatibility.cc \ +diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in +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 = { \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } + am__installdirs = "$(DESTDIR)$(toolexeclibdir)" +-LTLIBRARIES = $(toolexeclib_LTLIBRARIES) ++LTLIBRARIES = $(noinst_LTLIBRARIES) $(toolexeclib_LTLIBRARIES) + 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,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) ++am_libstdc___nonshared110_la_OBJECTS = ++libstdc___nonshared110_la_OBJECTS = \ ++ $(am_libstdc___nonshared110_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_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) +@@ -188,10 +198,6 @@ depcomp = + am__depfiles_maybe = + CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +-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_CXX = $(am__v_CXX_@AM_V@) + am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) + am__v_CXX_0 = @echo " CXX " $@; +@@ -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 = +-SOURCES = $(libstdc___la_SOURCES) $(libvtv_la_SOURCES) ++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 = ++SOURCES = $(libstdc___la_SOURCES) $(libstdc___nonshared110_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 +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 + ABI_TWEAKS_SRCDIR = @ABI_TWEAKS_SRCDIR@ + ACLOCAL = @ACLOCAL@ + ALLOCATOR_H = @ALLOCATOR_H@ +@@ -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 \ +- $(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 + + # Cross compiler support. + @VTV_CYGMIN_TRUE@toolexeclib_LTLIBRARIES = libvtv.la libstdc++.la ++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___nonshared80_la_SOURCES = ++libstdc___nonshared80_la_LIBADD = \ ++ $(top_builddir)/src/nonshared98/libnonshared98convenience80.la \ ++ $(top_builddir)/src/nonshared11/libnonshared11convenience80.la \ ++ $(top_builddir)/src/nonshared17/libnonshared17convenience80.la \ ++ $(top_builddir)/src/nonshared20/libnonshared20convenience80.la ++ ++libstdc___nonshared80_la_DEPENDENCIES = \ ++ $(top_builddir)/src/nonshared98/libnonshared98convenience80.la \ ++ $(top_builddir)/src/nonshared11/libnonshared11convenience80.la \ ++ $(top_builddir)/src/nonshared17/libnonshared17convenience80.la \ ++ $(top_builddir)/src/nonshared20/libnonshared20convenience80.la ++ ++libstdc___nonshared110_la_SOURCES = ++libstdc___nonshared110_la_LIBADD = \ ++ $(top_builddir)/src/nonshared98/libnonshared98convenience110.la \ ++ $(top_builddir)/src/nonshared11/libnonshared11convenience110.la \ ++ $(top_builddir)/src/nonshared17/libnonshared17convenience110.la \ ++ $(top_builddir)/src/nonshared20/libnonshared20convenience110.la ++ ++libstdc___nonshared110_la_DEPENDENCIES = \ ++ $(top_builddir)/src/nonshared98/libnonshared98convenience110.la \ ++ $(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 \ +@@ -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): + ++clean-noinstLTLIBRARIES: ++ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) ++ @list='$(noinst_LTLIBRARIES)'; \ ++ locs=`for p in $$list; do echo $$p; done | \ ++ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ ++ sort -u`; \ ++ test -z "$$locs" || { \ ++ echo rm -f $${locs}; \ ++ rm -f $${locs}; \ ++ } ++ + install-toolexeclibLTLIBRARIES: $(toolexeclib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(toolexeclib_LTLIBRARIES)'; test -n "$(toolexeclibdir)" || list=; \ +@@ -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) + ++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++_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) + $(AM_V_GEN)$(libvtv_la_LINK) $(am_libvtv_la_rpath) $(libvtv_la_OBJECTS) $(libvtv_la_LIBADD) $(LIBS) + +@@ -927,7 +1002,8 @@ maintainer-clean-generic: + clean: clean-recursive + + clean-am: clean-generic clean-libtool clean-local \ +- clean-toolexeclibLTLIBRARIES mostlyclean-am ++ clean-noinstLTLIBRARIES clean-toolexeclibLTLIBRARIES \ ++ mostlyclean-am + + distclean: distclean-recursive + -rm -f Makefile +@@ -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 \ +- clean-toolexeclibLTLIBRARIES cscopelist-am ctags ctags-am \ +- distclean distclean-compile distclean-generic \ +- distclean-libtool distclean-tags dvi dvi-am html html-am info \ +- info-am install install-am install-data install-data-am \ +- install-data-local install-dvi install-dvi-am install-exec \ +- install-exec-am install-html install-html-am install-info \ +- install-info-am install-man install-pdf install-pdf-am \ +- install-ps install-ps-am install-strip \ ++ clean-noinstLTLIBRARIES clean-toolexeclibLTLIBRARIES \ ++ cscopelist-am ctags ctags-am distclean distclean-compile \ ++ distclean-generic distclean-libtool distclean-tags dvi dvi-am \ ++ html html-am info info-am install install-am install-data \ ++ install-data-am install-data-local install-dvi install-dvi-am \ ++ install-exec install-exec-am install-html install-html-am \ ++ install-info install-info-am install-man install-pdf \ ++ install-pdf-am install-ps install-ps-am install-strip \ + install-toolexeclibLTLIBRARIES installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ +diff --git a/libstdc++-v3/src/c++11/codecvt.cc b/libstdc++-v3/src/c++11/codecvt.cc +index 3e45159ea..fbb770935 100644 +--- a/libstdc++-v3/src/c++11/codecvt.cc ++++ b/libstdc++-v3/src/c++11/codecvt.cc +@@ -744,6 +744,7 @@ namespace + } + } + ++#ifndef _GLIBCXX_NONSHARED_CXX11_80 + // Define members of codecvt specialization. + // Converts from UTF-8 to UTF-16. + +@@ -891,6 +892,7 @@ codecvt::do_max_length() const throw() + // up to 4 UTF-8 code units. + return 4; + } ++#endif + + #if defined(_GLIBCXX_USE_CHAR8_T) + // Define members of codecvt specialization. +@@ -1042,6 +1044,7 @@ codecvt::do_max_length() const throw() + } + #endif // _GLIBCXX_USE_CHAR8_T + ++#ifndef _GLIBCXX_NONSHARED_CXX11_80 + // Define members of codecvt_utf8 base class implementation. + // Converts from UTF-8 to UCS-2. + +@@ -1791,11 +1794,14 @@ __codecvt_utf8_utf16_base::do_max_length() const throw() + return max; + } + #endif ++#endif + + inline template class __codecvt_abstract_base; + inline template class __codecvt_abstract_base; ++#ifndef _GLIBCXX_NONSHARED_CXX11_80 + template class codecvt_byname; + template class codecvt_byname; ++#endif + + #if defined(_GLIBCXX_USE_CHAR8_T) + inline template class __codecvt_abstract_base; +diff --git a/libstdc++-v3/src/c++11/condition_variable.cc b/libstdc++-v3/src/c++11/condition_variable.cc +index cd39a96b8..e7b4d39df 100644 +--- a/libstdc++-v3/src/c++11/condition_variable.cc ++++ b/libstdc++-v3/src/c++11/condition_variable.cc +@@ -31,9 +31,11 @@ namespace std _GLIBCXX_VISIBILITY(default) + { + _GLIBCXX_BEGIN_NAMESPACE_VERSION + ++#ifndef _GLIBCXX_NONSHARED_CXX11 + condition_variable::condition_variable() noexcept = default; + + condition_variable::~condition_variable() noexcept = default; ++#endif + + void + condition_variable::wait(unique_lock& __lock) +@@ -41,6 +43,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + _M_cond.wait(*__lock.mutex()); + } + ++#ifndef _GLIBCXX_NONSHARED_CXX11 + void + condition_variable::notify_one() noexcept + { +@@ -52,6 +55,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + { + _M_cond.notify_all(); + } ++#endif + + extern void + __at_thread_exit(__at_thread_exit_elt*); +diff --git a/libstdc++-v3/src/c++11/cxx11-ios_failure.cc b/libstdc++-v3/src/c++11/cxx11-ios_failure.cc +index bd3fd556b..a409fd116 100644 +--- a/libstdc++-v3/src/c++11/cxx11-ios_failure.cc ++++ b/libstdc++-v3/src/c++11/cxx11-ios_failure.cc +@@ -122,9 +122,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + using __ios_failure = ios::failure; + #endif + ++#ifndef _GLIBCXX_NONSHARED_CXX11_80 + void + __throw_ios_failure(const char* __s __attribute__((unused))) + { _GLIBCXX_THROW_OR_ABORT(__ios_failure(_(__s))); } ++#endif + + 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..d70625254 100644 +--- a/libstdc++-v3/src/c++11/futex.cc ++++ b/libstdc++-v3/src/c++11/futex.cc +@@ -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 + ++#ifndef _GLIBCXX_NONSHARED_CXX11_80 + bool + __atomic_futex_unsigned_base:: + _M_futex_wait_until(unsigned *__addr, unsigned __val, bool __has_timeout, +@@ -182,6 +185,7 @@ namespace + return true; + } + } ++#endif + + bool + __atomic_futex_unsigned_base:: +@@ -261,6 +265,7 @@ namespace + } + } + ++#ifndef _GLIBCXX_NONSHARED_CXX11_80 + void + __atomic_futex_unsigned_base::_M_futex_notify_all(unsigned* __addr) + { +@@ -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); + } ++#endif + + _GLIBCXX_END_NAMESPACE_VERSION + } +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 ++++ b/libstdc++-v3/src/c++11/ios.cc +@@ -33,6 +33,7 @@ namespace std _GLIBCXX_VISIBILITY(default) + { + _GLIBCXX_BEGIN_NAMESPACE_VERSION + ++#ifndef _GLIBCXX_NONSHARED_CXX11 + // Definitions for static const members of ios_base. + const ios_base::fmtflags ios_base::boolalpha; + const ios_base::fmtflags ios_base::dec; +@@ -184,6 +185,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + } + _M_callbacks = 0; + } ++#endif + + void + ios_base::_M_move(ios_base& __rhs) noexcept +diff --git a/libstdc++-v3/src/c++11/shared_ptr.cc b/libstdc++-v3/src/c++11/shared_ptr.cc +index 4b02cb25c..1ec57ec71 100644 +--- a/libstdc++-v3/src/c++11/shared_ptr.cc ++++ b/libstdc++-v3/src/c++11/shared_ptr.cc +@@ -53,6 +53,7 @@ namespace std _GLIBCXX_VISIBILITY(default) + { + _GLIBCXX_BEGIN_NAMESPACE_VERSION + ++#ifndef _GLIBCXX_NONSHARED_CXX11_80 + bad_weak_ptr::~bad_weak_ptr() noexcept = default; + + char const* +@@ -102,6 +103,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + __gnu_internal::get_mutex(_M_key2).unlock(); + } + } ++#endif + #endif + + bool +diff --git a/libstdc++-v3/src/c++11/system_error.cc b/libstdc++-v3/src/c++11/system_error.cc +index d01451ba1..04fd6cdf1 100644 +--- a/libstdc++-v3/src/c++11/system_error.cc ++++ b/libstdc++-v3/src/c++11/system_error.cc +@@ -607,7 +607,9 @@ _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2) + + _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2) + ++#ifndef _GLIBCXX_NONSHARED_CXX11 + system_error::~system_error() = default; ++#endif + + error_condition + error_category::default_error_condition(int __i) const noexcept +@@ -622,9 +624,11 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2) + error_category::equivalent(const error_code& __code, int __i) const noexcept + { return *this == __code.category() && __code.value() == __i; } + ++#ifndef _GLIBCXX_NONSHARED_CXX11 + error_condition + error_code::default_error_condition() const noexcept + { return category().default_error_condition(value()); } ++#endif + + #if _GLIBCXX_USE_CXX11_ABI + // Return error_category::message() as a COW string +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 ++++ b/libstdc++-v3/src/c++17/floating_from_chars.cc +@@ -1225,6 +1225,7 @@ namespace + + #if USE_LIB_FAST_FLOAT || USE_STRTOD_FOR_FROM_CHARS + ++#ifndef _GLIBCXX_NONSHARED_CXX11_110 + from_chars_result + from_chars(const char* first, const char* last, float& value, + chars_format fmt) noexcept +@@ -1274,6 +1275,7 @@ from_chars(const char* first, const char* last, long double& value, + return from_chars_strtod(first, last, value, fmt); + #endif + } ++#endif + + #if USE_LIB_FAST_FLOAT + // Entrypoints for 16-bit floats. +@@ -1300,6 +1302,7 @@ __from_chars_bfloat16_t(const char* first, const char* last, float& value, + } + #endif + ++#ifndef _GLIBCXX_NONSHARED_CXX11_110 + #ifdef _GLIBCXX_LONG_DOUBLE_COMPAT + // Make std::from_chars for 64-bit long double an alias for the overload + // for double. +@@ -1309,6 +1312,7 @@ _ZSt10from_charsPKcS0_ReSt12chars_format(const char* first, const char* last, + chars_format fmt) noexcept + __attribute__((alias ("_ZSt10from_charsPKcS0_RdSt12chars_format"))); + #endif ++#endif + + #ifdef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT + from_chars_result +diff --git a/libstdc++-v3/src/c++17/floating_to_chars.cc b/libstdc++-v3/src/c++17/floating_to_chars.cc +index 2c9da977c..2779d2092 100644 +--- a/libstdc++-v3/src/c++17/floating_to_chars.cc ++++ b/libstdc++-v3/src/c++17/floating_to_chars.cc +@@ -1767,6 +1767,7 @@ template + __builtin_unreachable(); + } + ++#ifndef _GLIBCXX_NONSHARED_CXX11_110 + // Define the overloads for float. + to_chars_result + to_chars(char* first, char* last, float value) noexcept +@@ -1830,6 +1831,7 @@ to_chars(char* first, char* last, long double value, chars_format fmt, + else + return __floating_to_chars_precision(first, last, value, fmt, precision); + } ++#endif + + #ifdef FLOAT128_TO_CHARS + #ifdef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT +@@ -1907,6 +1909,7 @@ __to_chars_bfloat16_t(char* first, char* last, float value, + floating_type_bfloat16_t{ value }, fmt); + } + ++#ifndef _GLIBCXX_NONSHARED_CXX11_110 + #ifdef _GLIBCXX_LONG_DOUBLE_COMPAT + // Map the -mlong-double-64 long double overloads to the double overloads. + extern "C" to_chars_result +@@ -1923,6 +1926,7 @@ _ZSt8to_charsPcS_eSt12chars_formati(char* first, char* last, double value, + chars_format fmt, int precision) noexcept + __attribute__((alias ("_ZSt8to_charsPcS_dSt12chars_formati"))); + #endif ++#endif + + _GLIBCXX_END_NAMESPACE_VERSION + } // namespace std +diff --git a/libstdc++-v3/src/c++98/ios_failure.cc b/libstdc++-v3/src/c++98/ios_failure.cc +index 0467109c9..8d6e12c09 100644 +--- a/libstdc++-v3/src/c++98/ios_failure.cc ++++ b/libstdc++-v3/src/c++98/ios_failure.cc +@@ -45,6 +45,7 @@ namespace std _GLIBCXX_VISIBILITY(default) + { + _GLIBCXX_BEGIN_NAMESPACE_VERSION + ++#ifndef _GLIBCXX_NONSHARED_CXX11_80 + ios_base::failure::failure(const string& __str) throw() + : _M_msg(__str) { } + +@@ -54,6 +55,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + const char* + ios_base::failure::what() const throw() + { return _M_msg.c_str(); } ++#endif + + #if _GLIBCXX_USE_DUAL_ABI + // When the dual ABI is enabled __throw_ios_failure() is defined in +diff --git a/libstdc++-v3/src/c++98/locale_facets.cc b/libstdc++-v3/src/c++98/locale_facets.cc +index fa469b1b8..2e2d4e353 100644 +--- a/libstdc++-v3/src/c++98/locale_facets.cc ++++ b/libstdc++-v3/src/c++98/locale_facets.cc +@@ -27,6 +27,8 @@ namespace std _GLIBCXX_VISIBILITY(default) + { + _GLIBCXX_BEGIN_NAMESPACE_VERSION + ++#ifndef _GLIBCXX_NONSHARED_CXX11_80 ++#ifndef _GLIBCXX_NONSHARED_CXX11 + // Definitions for static const data members of time_base. + template<> + const char* +@@ -97,6 +99,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + *__fptr++ = (__flags & ios_base::uppercase) ? 'G' : 'g'; + *__fptr = '\0'; + } ++#endif + + // This function is not exported but is needed internally, by the versions + // of __verify_grouping below and in src/c++11/cxx11-locale-inst.cc +@@ -125,6 +128,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + return __test; + } + ++#ifndef _GLIBCXX_NONSHARED_CXX11 + bool + __verify_grouping(const char* __grouping, size_t __grouping_size, + const string& __grouping_tmp) throw() +@@ -133,6 +137,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + __grouping_tmp.c_str(), + __grouping_tmp.size()); + } ++#endif ++#endif + + namespace + { +diff --git a/libstdc++-v3/src/nonshared11/Makefile.am b/libstdc++-v3/src/nonshared11/Makefile.am +new file mode 100644 +index 000000000..f10095a62 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared11/Makefile.am +@@ -0,0 +1,139 @@ ++## Makefile for the C++03 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 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++11 runtime. ++noinst_LTLIBRARIES = libnonshared11convenience80.la \ ++ libnonshared11convenience110.la ++ ++headers = ++ ++sources80 = \ ++ limits.cc \ ++ functexcept80.cc \ ++ debug.cc \ ++ eh_ptr80.cc \ ++ futex80.cc \ ++ codecvt80.cc \ ++ cow-stdexcept80.cc \ ++ 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_sources80 = \ ++ cow-sstream-inst80.cc \ ++ istream-inst80.cc \ ++ sstream-inst80.cc \ ++ cow-string-inst80.cc \ ++ cow-wstring-inst80.cc \ ++ locale-inst80.cc \ ++ wlocale-inst80.cc \ ++ string-inst80.cc \ ++ wstring-inst80.cc \ ++ cxx11-locale-inst80.cc \ ++ cxx11-wlocale-inst80.cc ++inst_sources110 = \ ++ locale-inst110.cc \ ++ wlocale-inst110.cc \ ++ string-inst110.cc \ ++ wstring-inst110.cc \ ++ cxx11-locale-inst110.cc \ ++ cxx11-wlocale-inst110.cc ++else ++# XTEMPLATE_FLAGS = ++inst_sources80 = ++inst_sources110 = ++endif ++ ++vpath % $(top_srcdir)/src/nonshared11 ++vpath % $(top_srcdir) ++ ++libnonshared11convenience80_la_SOURCES = $(sources80) ++libnonshared11convenience110_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 ++# 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++11 \ ++ $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \ ++ $(XTEMPLATE_FLAGS) $(VTV_CXXFLAGS) \ ++ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) ++ ++AM_MAKEFLAGS = \ ++ "gxx_include_dir=$(gxx_include_dir)" ++ ++# Libtool notes ++ ++# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is ++# last. (That way, things like -O2 passed down from the toplevel can ++# be overridden by --enable-debug.) ++ ++# 2) 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. ++# We have to put --tag disable-shared after --tag CXX lest things ++# CXX undo the affect of disable-shared. ++LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(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 $(LIBTOOLFLAGS) \ ++ --mode=link $(CXX) \ ++ $(VTV_CXXLINKFLAGS) \ ++ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ ++ ++# Use special rules for source files that require -fchar8_t. ++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..befe37580 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared11/Makefile.in +@@ -0,0 +1,816 @@ ++# 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@ ++ ++VPATH = @srcdir@ ++am__is_gnu_make = { \ ++ if test -z '$(MAKELEVEL)'; then \ ++ false; \ ++ elif test -n '$(MAKE_HOST)'; then \ ++ true; \ ++ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ ++ true; \ ++ else \ ++ false; \ ++ fi; \ ++} ++am__make_running_with_option = \ ++ case $${target_option-} in \ ++ ?) ;; \ ++ *) echo "am__make_running_with_option: internal error: invalid" \ ++ "target option '$${target_option-}' specified" >&2; \ ++ exit 1;; \ ++ esac; \ ++ has_opt=no; \ ++ sane_makeflags=$$MAKEFLAGS; \ ++ if $(am__is_gnu_make); then \ ++ sane_makeflags=$$MFLAGS; \ ++ else \ ++ case $$MAKEFLAGS in \ ++ *\\[\ \ ]*) \ ++ bs=\\; \ ++ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ ++ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ ++ esac; \ ++ fi; \ ++ skip_next=no; \ ++ strip_trailopt () \ ++ { \ ++ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ ++ }; \ ++ for flg in $$sane_makeflags; do \ ++ test $$skip_next = yes && { skip_next=no; continue; }; \ ++ case $$flg in \ ++ *=*|--*) continue;; \ ++ -*I) strip_trailopt 'I'; skip_next=yes;; \ ++ -*I?*) strip_trailopt 'I';; \ ++ -*O) strip_trailopt 'O'; skip_next=yes;; \ ++ -*O?*) strip_trailopt 'O';; \ ++ -*l) strip_trailopt 'l'; skip_next=yes;; \ ++ -*l?*) strip_trailopt 'l';; \ ++ -[dEDm]) skip_next=yes;; \ ++ -[JT]) skip_next=yes;; \ ++ esac; \ ++ case $$flg in \ ++ *$$target_option*) has_opt=yes; break;; \ ++ esac; \ ++ done; \ ++ test $$has_opt = yes ++am__make_dryrun = (target_option=n; $(am__make_running_with_option)) ++am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = @build@ ++host_triplet = @host@ ++target_triplet = @target@ ++subdir = src/nonshared11 ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ ++ $(top_srcdir)/../config/enable.m4 \ ++ $(top_srcdir)/../config/futex.m4 \ ++ $(top_srcdir)/../config/hwcaps.m4 \ ++ $(top_srcdir)/../config/iconv.m4 \ ++ $(top_srcdir)/../config/lead-dot.m4 \ ++ $(top_srcdir)/../config/lib-ld.m4 \ ++ $(top_srcdir)/../config/lib-link.m4 \ ++ $(top_srcdir)/../config/lib-prefix.m4 \ ++ $(top_srcdir)/../config/lthostflags.m4 \ ++ $(top_srcdir)/../config/multi.m4 \ ++ $(top_srcdir)/../config/no-executables.m4 \ ++ $(top_srcdir)/../config/override.m4 \ ++ $(top_srcdir)/../config/toolexeclibdir.m4 \ ++ $(top_srcdir)/../config/unwind_ipinfo.m4 \ ++ $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \ ++ $(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \ ++ $(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/crossconfig.m4 \ ++ $(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \ ++ $(top_srcdir)/../config/gc++filt.m4 \ ++ $(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \ ++ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++DIST_COMMON = $(srcdir)/Makefile.am ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++LTLIBRARIES = $(noinst_LTLIBRARIES) ++libnonshared11convenience110_la_LIBADD = ++@ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_1 = locale-inst110.lo \ ++@ENABLE_EXTERN_TEMPLATE_TRUE@ wlocale-inst110.lo \ ++@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-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 = ++libnonshared11convenience80_la_LIBADD = ++@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 \ ++@ENABLE_EXTERN_TEMPLATE_TRUE@ cow-wstring-inst80.lo \ ++@ENABLE_EXTERN_TEMPLATE_TRUE@ locale-inst80.lo \ ++@ENABLE_EXTERN_TEMPLATE_TRUE@ wlocale-inst80.lo \ ++@ENABLE_EXTERN_TEMPLATE_TRUE@ string-inst80.lo \ ++@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_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 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@) ++am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) ++am__v_P_0 = false ++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_at = $(am__v_at_@AM_V@) ++am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) ++am__v_at_0 = @ ++am__v_at_1 = ++DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) ++depcomp = ++am__depfiles_maybe = ++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 = ++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 = $(libnonshared11convenience110_la_SOURCES) \ ++ $(libnonshared11convenience80_la_SOURCES) ++am__can_run_installinfo = \ ++ case $$AM_UPDATE_INFO_DIR in \ ++ n|no|NO) false;; \ ++ *) (install-info --version) >/dev/null 2>&1;; \ ++ esac ++am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) ++# Read a list of newline-separated strings from the standard input, ++# and print each of them once, without duplicates. Input order is ++# *not* preserved. ++am__uniquify_input = $(AWK) '\ ++ BEGIN { nonempty = 0; } \ ++ { items[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in items) print i; }; } \ ++' ++# Make sure the list of sources is unique. This is necessary because, ++# e.g., the same source file might be shared among _SOURCES variables ++# for different programs/libraries. ++am__define_uniq_tagged_files = \ ++ list='$(am__tagged_files)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | $(am__uniquify_input)` ++ETAGS = etags ++CTAGS = ctags ++ABI_TWEAKS_SRCDIR = @ABI_TWEAKS_SRCDIR@ ++ACLOCAL = @ACLOCAL@ ++ALLOCATOR_H = @ALLOCATOR_H@ ++ALLOCATOR_NAME = @ALLOCATOR_NAME@ ++ALLOC_FILE = @ALLOC_FILE@ ++AMTAR = @AMTAR@ ++AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ ++AR = @AR@ ++AS = @AS@ ++ATOMICITY_SRCDIR = @ATOMICITY_SRCDIR@ ++ATOMIC_FLAGS = @ATOMIC_FLAGS@ ++ATOMIC_WORD_SRCDIR = @ATOMIC_WORD_SRCDIR@ ++AUTOCONF = @AUTOCONF@ ++AUTOHEADER = @AUTOHEADER@ ++AUTOMAKE = @AUTOMAKE@ ++AWK = @AWK@ ++BACKTRACE_CPPFLAGS = @BACKTRACE_CPPFLAGS@ ++BACKTRACE_SUPPORTED = @BACKTRACE_SUPPORTED@ ++BACKTRACE_SUPPORTS_THREADS = @BACKTRACE_SUPPORTS_THREADS@ ++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@ ++CFLAGS = @CFLAGS@ ++CLOCALE_CC = @CLOCALE_CC@ ++CLOCALE_H = @CLOCALE_H@ ++CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@ ++CMESSAGES_CC = @CMESSAGES_CC@ ++CMESSAGES_H = @CMESSAGES_H@ ++CMONEY_CC = @CMONEY_CC@ ++CNUMERIC_CC = @CNUMERIC_CC@ ++CPP = @CPP@ ++CPPFLAGS = @CPPFLAGS@ ++CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@ ++CPU_OPT_BITS_RANDOM = @CPU_OPT_BITS_RANDOM@ ++CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@ ++CSTDIO_H = @CSTDIO_H@ ++CTIME_CC = @CTIME_CC@ ++CTIME_H = @CTIME_H@ ++CXX = @CXX@ ++CXXCPP = @CXXCPP@ ++CXXFILT = @CXXFILT@ ++CXXFLAGS = @CXXFLAGS@ ++CYGPATH_W = @CYGPATH_W@ ++C_INCLUDE_DIR = @C_INCLUDE_DIR@ ++DBLATEX = @DBLATEX@ ++DEBUG_FLAGS = @DEBUG_FLAGS@ ++DEFS = @DEFS@ ++DOT = @DOT@ ++DOXYGEN = @DOXYGEN@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ ++ECHO_C = @ECHO_C@ ++ECHO_N = @ECHO_N@ ++ECHO_T = @ECHO_T@ ++EGREP = @EGREP@ ++EH_POOL_FLAGS = @EH_POOL_FLAGS@ ++ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@ ++EXEEXT = @EXEEXT@ ++EXTRA_CFLAGS = @EXTRA_CFLAGS@ ++EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ ++FGREP = @FGREP@ ++FORMAT_FILE = @FORMAT_FILE@ ++FREESTANDING_FLAGS = @FREESTANDING_FLAGS@ ++GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@ ++GLIBCXX_LIBS = @GLIBCXX_LIBS@ ++GREP = @GREP@ ++HWCAP_CFLAGS = @HWCAP_CFLAGS@ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++LD = @LD@ ++LDFLAGS = @LDFLAGS@ ++LIBICONV = @LIBICONV@ ++LIBOBJS = @LIBOBJS@ ++LIBS = @LIBS@ ++LIBTOOL = @LIBTOOL@ ++LIPO = @LIPO@ ++LN_S = @LN_S@ ++LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ ++LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ ++LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@ ++LTLIBICONV = @LTLIBICONV@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAINT = @MAINT@ ++MAKEINFO = @MAKEINFO@ ++MKDIR_P = @MKDIR_P@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ ++OPT_LDFLAGS = @OPT_LDFLAGS@ ++OS_INC_SRCDIR = @OS_INC_SRCDIR@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ ++PACKAGE = @PACKAGE@ ++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ ++PACKAGE_NAME = @PACKAGE_NAME@ ++PACKAGE_STRING = @PACKAGE_STRING@ ++PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_URL = @PACKAGE_URL@ ++PACKAGE_VERSION = @PACKAGE_VERSION@ ++PATH_SEPARATOR = @PATH_SEPARATOR@ ++PDFLATEX = @PDFLATEX@ ++RANLIB = @RANLIB@ ++SECTION_FLAGS = @SECTION_FLAGS@ ++SECTION_LDFLAGS = @SECTION_LDFLAGS@ ++SED = @SED@ ++SET_MAKE = @SET_MAKE@ ++SHELL = @SHELL@ ++STRIP = @STRIP@ ++SYMVER_FILE = @SYMVER_FILE@ ++TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ ++USE_NLS = @USE_NLS@ ++VERSION = @VERSION@ ++VIEW_FILE = @VIEW_FILE@ ++VTV_CXXFLAGS = @VTV_CXXFLAGS@ ++VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@ ++VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@ ++WARN_FLAGS = @WARN_FLAGS@ ++XMLCATALOG = @XMLCATALOG@ ++XMLLINT = @XMLLINT@ ++XSLTPROC = @XSLTPROC@ ++XSL_STYLE_DIR = @XSL_STYLE_DIR@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_CC = @ac_ct_CC@ ++ac_ct_CXX = @ac_ct_CXX@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ++am__leading_dot = @am__leading_dot@ ++am__tar = @am__tar@ ++am__untar = @am__untar@ ++baseline_dir = @baseline_dir@ ++baseline_subdir_switch = @baseline_subdir_switch@ ++bindir = @bindir@ ++build = @build@ ++build_alias = @build_alias@ ++build_cpu = @build_cpu@ ++build_os = @build_os@ ++build_vendor = @build_vendor@ ++builddir = @builddir@ ++check_msgfmt = @check_msgfmt@ ++datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ ++enable_shared = @enable_shared@ ++enable_static = @enable_static@ ++exec_prefix = @exec_prefix@ ++get_gcc_base_ver = @get_gcc_base_ver@ ++glibcxx_MOFILES = @glibcxx_MOFILES@ ++glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@ ++glibcxx_POFILES = @glibcxx_POFILES@ ++glibcxx_builddir = @glibcxx_builddir@ ++glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@ ++glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@ ++glibcxx_cxx98_abi = @glibcxx_cxx98_abi@ ++glibcxx_localedir = @glibcxx_localedir@ ++glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@ ++glibcxx_prefixdir = @glibcxx_prefixdir@ ++glibcxx_srcdir = @glibcxx_srcdir@ ++glibcxx_toolexecdir = @glibcxx_toolexecdir@ ++glibcxx_toolexeclibdir = @glibcxx_toolexeclibdir@ ++gxx_include_dir = @gxx_include_dir@ ++host = @host@ ++host_alias = @host_alias@ ++host_cpu = @host_cpu@ ++host_os = @host_os@ ++host_vendor = @host_vendor@ ++htmldir = @htmldir@ ++includedir = @includedir@ ++infodir = @infodir@ ++install_sh = @install_sh@ ++libdir = @libdir@ ++libexecdir = @libexecdir@ ++libtool_VERSION = @libtool_VERSION@ ++localedir = @localedir@ ++localstatedir = @localstatedir@ ++lt_host_flags = @lt_host_flags@ ++mandir = @mandir@ ++mkdir_p = @mkdir_p@ ++multi_basedir = @multi_basedir@ ++oldincludedir = @oldincludedir@ ++pdfdir = @pdfdir@ ++port_specific_symbol_files = @port_specific_symbol_files@ ++prefix = @prefix@ ++program_transform_name = @program_transform_name@ ++psdir = @psdir@ ++python_mod_dir = @python_mod_dir@ ++sbindir = @sbindir@ ++sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ ++sysconfdir = @sysconfdir@ ++target = @target@ ++target_alias = @target_alias@ ++target_cpu = @target_cpu@ ++target_os = @target_os@ ++target_vendor = @target_vendor@ ++thread_header = @thread_header@ ++tmake_file = @tmake_file@ ++top_build_prefix = @top_build_prefix@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ ++toplevel_builddir = @toplevel_builddir@ ++toplevel_srcdir = @toplevel_srcdir@ ++ ++# May be used by various substitution variables. ++gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER) ++MAINT_CHARSET = latin1 ++mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs ++PWD_COMMAND = $${PWDCMD-pwd} ++STAMP = echo timestamp > ++toolexecdir = $(glibcxx_toolexecdir) ++toolexeclibdir = $(glibcxx_toolexeclibdir) ++@ENABLE_WERROR_FALSE@WERROR_FLAG = ++@ENABLE_WERROR_TRUE@WERROR_FLAG = -Werror ++@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_TRUE@LDBL_128_FLAGS = $(LONG_DOUBLE_128_FLAGS) ++ ++# These bits are all figured out from configure. Look in acinclude.m4 ++# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS. ++CONFIG_CXXFLAGS = \ ++ $(SECTION_FLAGS) $(HWCAP_CFLAGS) -frandom-seed=$@ $(LDBL_128_FLAGS) ++ ++WARN_CXXFLAGS = \ ++ $(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 = libnonshared11convenience80.la \ ++ libnonshared11convenience110.la ++ ++headers = ++sources80 = \ ++ limits.cc \ ++ functexcept80.cc \ ++ debug.cc \ ++ eh_ptr80.cc \ ++ futex80.cc \ ++ codecvt80.cc \ ++ cow-stdexcept80.cc \ ++ 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_sources80 = ++ ++# XTEMPLATE_FLAGS = -fno-implicit-templates ++@ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources80 = \ ++@ENABLE_EXTERN_TEMPLATE_TRUE@ cow-sstream-inst80.cc \ ++@ENABLE_EXTERN_TEMPLATE_TRUE@ istream-inst80.cc \ ++@ENABLE_EXTERN_TEMPLATE_TRUE@ sstream-inst80.cc \ ++@ENABLE_EXTERN_TEMPLATE_TRUE@ cow-string-inst80.cc \ ++@ENABLE_EXTERN_TEMPLATE_TRUE@ cow-wstring-inst80.cc \ ++@ENABLE_EXTERN_TEMPLATE_TRUE@ locale-inst80.cc \ ++@ENABLE_EXTERN_TEMPLATE_TRUE@ wlocale-inst80.cc \ ++@ENABLE_EXTERN_TEMPLATE_TRUE@ string-inst80.cc \ ++@ENABLE_EXTERN_TEMPLATE_TRUE@ wstring-inst80.cc \ ++@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_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-inst110.cc ++ ++libnonshared11convenience80_la_SOURCES = $(sources80) ++libnonshared11convenience110_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 ++# 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++11 \ ++ $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \ ++ $(XTEMPLATE_FLAGS) $(VTV_CXXFLAGS) \ ++ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) ++ ++AM_MAKEFLAGS = \ ++ "gxx_include_dir=$(gxx_include_dir)" ++ ++ ++# Libtool notes ++ ++# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is ++# last. (That way, things like -O2 passed down from the toplevel can ++# be overridden by --enable-debug.) ++ ++# 2) 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. ++# We have to put --tag disable-shared after --tag CXX lest things ++# CXX undo the affect of disable-shared. ++LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(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 $(LIBTOOLFLAGS) \ ++ --mode=link $(CXX) \ ++ $(VTV_CXXLINKFLAGS) \ ++ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ ++ ++all: all-am ++ ++.SUFFIXES: ++.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 \ ++ *$$dep*) \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps src/nonshared11/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --foreign --ignore-deps src/nonshared11/Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++$(top_srcdir)/fragment.am $(am__empty): ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++ ++clean-noinstLTLIBRARIES: ++ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) ++ @list='$(noinst_LTLIBRARIES)'; \ ++ locs=`for p in $$list; do echo $$p; done | \ ++ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ ++ sort -u`; \ ++ test -z "$$locs" || { \ ++ echo rm -f $${locs}; \ ++ rm -f $${locs}; \ ++ } ++ ++libnonshared11convenience110.la: $(libnonshared11convenience110_la_OBJECTS) $(libnonshared11convenience110_la_DEPENDENCIES) $(EXTRA_libnonshared11convenience110_la_DEPENDENCIES) ++ $(AM_V_CXXLD)$(CXXLINK) $(libnonshared11convenience110_la_OBJECTS) $(libnonshared11convenience110_la_LIBADD) $(LIBS) ++ ++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: ++ -rm -f *.$(OBJEXT) ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++.cc.o: ++ $(AM_V_CXX)$(CXXCOMPILE) -c -o $@ $< ++ ++.cc.obj: ++ $(AM_V_CXX)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` ++ ++.cc.lo: ++ $(AM_V_CXX)$(LTCXXCOMPILE) -c -o $@ $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++ID: $(am__tagged_files) ++ $(am__define_uniq_tagged_files); mkid -fID $$unique ++tags: tags-am ++TAGS: tags ++ ++tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ set x; \ ++ here=`pwd`; \ ++ $(am__define_uniq_tagged_files); \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ ++ test -n "$$unique" || unique=$$empty_fix; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ ++ fi ++ctags: ctags-am ++ ++CTAGS: ctags ++ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ $(am__define_uniq_tagged_files); \ ++ test -z "$(CTAGS_ARGS)$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" ++cscopelist: cscopelist-am ++ ++cscopelist-am: $(am__tagged_files) ++ list='$(am__tagged_files)'; \ ++ case "$(srcdir)" in \ ++ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ ++ *) sdir=$(subdir)/$(srcdir) ;; \ ++ esac; \ ++ for i in $$list; do \ ++ if test -f "$$i"; then \ ++ echo "$(subdir)/$$i"; \ ++ else \ ++ echo "$$sdir/$$i"; \ ++ fi; \ ++ done >> $(top_builddir)/cscope.files ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++check-am: all-am ++check: check-am ++all-am: Makefile $(LTLIBRARIES) ++installdirs: ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ if test -z '$(STRIP)'; then \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ install; \ ++ else \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ ++ fi ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ ++ mostlyclean-am ++ ++distclean: distclean-am ++ -rm -f Makefile ++distclean-am: clean-am distclean-compile distclean-generic \ ++ distclean-tags ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: ++ ++.MAKE: install-am install-strip ++ ++.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ ++ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ ++ ctags-am distclean distclean-compile distclean-generic \ ++ distclean-libtool distclean-tags dvi dvi-am html html-am info \ ++ info-am install install-am install-data install-data-am \ ++ install-dvi install-dvi-am install-exec install-exec-am \ ++ install-html install-html-am install-info install-info-am \ ++ install-man install-pdf install-pdf-am install-ps \ ++ install-ps-am install-strip installcheck installcheck-am \ ++ installdirs maintainer-clean maintainer-clean-generic \ ++ mostlyclean mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ ++ uninstall-am ++ ++.PRECIOUS: Makefile ++ ++ ++vpath % $(top_srcdir)/src/nonshared11 ++vpath % $(top_srcdir) ++ ++# Use special rules for source files that require -fchar8_t. ++codecvt80.lo: codecvt80.cc ++ $(LTCXXCOMPILE) -fchar8_t -c $< ++limits.lo: limits.cc ++ $(LTCXXCOMPILE) -fchar8_t -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/nonshared11/basic_file.cc b/libstdc++-v3/src/nonshared11/basic_file.cc +new file mode 100644 +index 000000000..2962cee3e +--- /dev/null ++++ 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 ++// 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.8 File-based streams ++// ++ ++#include ++#include ++#include ++#include ++ ++#ifdef _GLIBCXX_HAVE_POLL ++#include ++#endif ++ ++// 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 ++ +diff --git a/libstdc++-v3/src/nonshared11/codecvt80.cc b/libstdc++-v3/src/nonshared11/codecvt80.cc +new file mode 100644 +index 000000000..c903548a8 +--- /dev/null ++++ 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 ++// 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/codecvt.cc" ++asm (".hidden _ZTISt12codecvt_base"); ++asm (".hidden _ZTSSt12codecvt_base"); ++asm (".hidden _ZTISt23__codecvt_abstract_baseIDic11__mbstate_tE"); ++asm (".hidden _ZTISt23__codecvt_abstract_baseIDsc11__mbstate_tE"); ++asm (".hidden _ZTSSt23__codecvt_abstract_baseIDic11__mbstate_tE"); ++asm (".hidden _ZTSSt23__codecvt_abstract_baseIDsc11__mbstate_tE"); ++asm (".hidden _ZTVSt23__codecvt_abstract_baseIDic11__mbstate_tE"); ++asm (".hidden _ZTVSt23__codecvt_abstract_baseIDsc11__mbstate_tE"); ++asm (".hidden _ZTISt23__codecvt_abstract_baseIDiDu11__mbstate_tE"); ++asm (".hidden _ZTISt23__codecvt_abstract_baseIDsDu11__mbstate_tE"); ++asm (".hidden _ZTSSt23__codecvt_abstract_baseIDiDu11__mbstate_tE"); ++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/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 ++ ++#ifdef _GLIBCXX_HAS_GTHREADS ++ ++namespace std _GLIBCXX_VISIBILITY(default) ++{ ++_GLIBCXX_BEGIN_NAMESPACE_VERSION ++ ++ void ++ condition_variable::wait(unique_lock& __lock) ++ { ++ _M_cond.wait(*__lock.mutex()); ++ } ++ ++_GLIBCXX_END_NAMESPACE_VERSION ++} // namespace ++ ++#endif // _GLIBCXX_HAS_GTHREADS ++asm (".hidden _ZNSt18condition_variable4waitERSt11unique_lockISt5mutexE"); +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..bc72608d3 +--- /dev/null ++++ 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 ++// 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) ++{ ++_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 _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED0Ev"); ++asm (".hidden _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED1Ev"); ++asm (".hidden _ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEED2Ev"); ++asm (".hidden _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED0Ev"); ++asm (".hidden _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED1Ev"); ++asm (".hidden _ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEED2Ev"); +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 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared11/cow-stdexcept80.cc +@@ -0,0 +1,76 @@ ++// Methods for Exception Support for -*- 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: 19.1 Exception classes ++// ++ ++// All exception classes still use the classic COW std::string. ++#define _GLIBCXX_USE_CXX11_ABI 0 ++#define _GLIBCXX_DEFINE_STDEXCEPT_COPY_OPS 1 ++#define __cow_string __cow_stringxxx ++#include ++#include ++#undef __cow_string ++ ++namespace std _GLIBCXX_VISIBILITY(default) ++{ ++_GLIBCXX_BEGIN_NAMESPACE_VERSION ++ ++ // Copy/move constructors and assignment operators defined using COW string. ++ // These operations are noexcept even though copying a COW string is not, ++ // but we know that the string member in an exception has not been "leaked" ++ // so copying is a simple reference count increment. ++ // For the fully dynamic string moves are not noexcept (due to needing to ++ // allocate an empty string) so we just define the moves as copies here. ++ ++#if _GLIBCXX_FULLY_DYNAMIC_STRING == 0 ++ logic_error::logic_error(logic_error&& e) noexcept = default; ++ ++ logic_error& ++ logic_error::operator=(logic_error&& e) noexcept = default; ++#else ++ logic_error::logic_error(logic_error&& e) noexcept ++ : exception(e), _M_msg(e._M_msg) { } ++ ++ logic_error& ++ logic_error::operator=(logic_error&& e) noexcept ++ { _M_msg = e._M_msg; return *this; } ++#endif ++ ++#if _GLIBCXX_FULLY_DYNAMIC_STRING == 0 ++ runtime_error::runtime_error(runtime_error&& e) noexcept = default; ++ ++ runtime_error& ++ runtime_error::operator=(runtime_error&& e) noexcept = default; ++#else ++ runtime_error::runtime_error(runtime_error&& e) noexcept ++ : exception(e), _M_msg(e._M_msg) { } ++ ++ runtime_error& ++ runtime_error::operator=(runtime_error&& e) noexcept ++ { _M_msg = e._M_msg; return *this; } ++#endif ++_GLIBCXX_END_NAMESPACE_VERSION ++} // namespace +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..cb10cd9c4 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared11/cow-string-inst80.cc +@@ -0,0 +1,52 @@ ++// Components for manipulating sequences of characters -*- C++ -*- ++ ++// 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 ++// 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. ++ ++// Instantiation configuration. ++#ifndef C ++# define _GLIBCXX_USE_CXX11_ABI 0 ++# define C char ++#endif ++#include ++ ++namespace std _GLIBCXX_VISIBILITY(default) ++{ ++ ++ typedef basic_string S; ++ ++ template ++ S::basic_string(const S&, const allocator_type&); ++ ++ template ++ S::basic_string(S&&, const allocator_type&); ++ ++ template ++ void S::reserve(); ++} +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..e6ebb2f0a +--- /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/cxx11-ios_failure80.cc b/libstdc++-v3/src/nonshared11/cxx11-ios_failure80.cc +new file mode 100644 +index 000000000..514cd21d4 +--- /dev/null ++++ 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 ++// 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-ios_failure.cc" ++asm (".hidden _ZNKSt19__iosfail_type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv"); ++asm (".hidden _ZNSt13__ios_failureD0Ev"); ++asm (".hidden _ZNSt13__ios_failureD1Ev"); ++asm (".hidden _ZNSt13__ios_failureD2Ev"); ++asm (".hidden _ZNSt19__iosfail_type_infoD0Ev"); ++asm (".hidden _ZNSt19__iosfail_type_infoD1Ev"); ++asm (".hidden _ZNSt19__iosfail_type_infoD2Ev"); ++asm (".hidden _ZTISt13__ios_failure"); ++asm (".hidden _ZTISt19__iosfail_type_info"); ++asm (".hidden _ZTSSt13__ios_failure"); ++asm (".hidden _ZTSSt19__iosfail_type_info"); ++asm (".hidden _ZTVSt13__ios_failure"); ++asm (".hidden _ZTVSt19__iosfail_type_info"); ++asm (".hidden _ZNSt8ios_base7failureB5cxx11D2Ev"); ++asm (".hidden _ZTVNSt8ios_base7failureB5cxx11E"); ++asm (".hidden _ZNSt8ios_base7failureB5cxx11D1Ev"); ++asm (".hidden _ZNSt8ios_base7failureB5cxx11D0Ev"); ++asm (".hidden _ZNKSt8ios_base7failureB5cxx114whatEv"); ++asm (".hidden _ZNSt8ios_base7failureB5cxx11C2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"); ++asm (".hidden _ZNSt8ios_base7failureB5cxx11C1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"); ++asm (".hidden _ZNSt8ios_base7failureB5cxx11C2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt10error_code"); ++asm (".hidden _ZNSt8ios_base7failureB5cxx11C1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt10error_code"); ++asm (".hidden _ZNSt8ios_base7failureB5cxx11C2EPKcRKSt10error_code"); ++asm (".hidden _ZNSt8ios_base7failureB5cxx11C1EPKcRKSt10error_code"); ++asm (".hidden _ZTSNSt8ios_base7failureB5cxx11E"); ++asm (".hidden _ZTINSt8ios_base7failureB5cxx11E"); ++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 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared11/cxx11-locale-inst110.cc +@@ -0,0 +1,33 @@ ++// 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 ++// ++ ++#include "cxx11-locale-inst80.cc" ++asm (".hidden _ZNKSt5ctypeIcE8do_widenEc"); ++asm (".hidden _ZNKSt5ctypeIcE9do_narrowEcc"); ++asm (".hidden _ZNKSt5ctypeIcE8do_widenEPKcS2_Pc"); ++asm (".hidden _ZNKSt19istreambuf_iteratorIcSt11char_traitsIcEE6_M_getEv"); +diff --git a/libstdc++-v3/src/nonshared11/cxx11-locale-inst80.cc b/libstdc++-v3/src/nonshared11/cxx11-locale-inst80.cc +new file mode 100644 +index 000000000..fadd719ed +--- /dev/null ++++ b/libstdc++-v3/src/nonshared11/cxx11-locale-inst80.cc +@@ -0,0 +1,69 @@ ++// 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 ++#define _GLIBCXX_USE_CXX11_ABI 1 ++#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 ++ ++ 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; ++ ++INSTANTIATE_FACET_ACCESSORS(collate); ++INSTANTIATE_FACET_ACCESSORS(numpunct); ++INSTANTIATE_FACET_ACCESSORS(moneypunct); ++INSTANTIATE_USE_FACET (moneypunct); ++INSTANTIATE_FACET_ACCESSORS(time_get); ++INSTANTIATE_FACET_ACCESSORS(messages); ++INSTANTIATE_FACET_ACCESSORS(money_put); ++INSTANTIATE_FACET_ACCESSORS(money_get); ++ ++_GLIBCXX_END_NAMESPACE_VERSION ++} // namespace ++#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/cxx11-wlocale-inst110.cc b/libstdc++-v3/src/nonshared11/cxx11-wlocale-inst110.cc +new file mode 100644 +index 000000000..6af5461c8 +--- /dev/null ++++ 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 ++// 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 "cxx11-locale-inst80.cc" ++#endif ++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..6af5461c8 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared11/cxx11-wlocale-inst80.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 ++// 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 "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 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared11/debug.cc +@@ -0,0 +1,131 @@ ++// Copyright (C) 2003-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 ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++namespace std ++{ ++ [[__noreturn__]] ++ void ++ __glibcxx_assert_fail(const char* file, int line, ++ const char* function, const char* condition) noexcept ++ { ++ if (file && function && condition) ++ fprintf(stderr, "%s:%d: %s: Assertion '%s' failed.\n", ++ file, line, function, condition); ++ else if (function) ++ fprintf(stderr, "%s: Undefined behavior detected.\n", function); ++ abort(); ++ } ++} ++ ++#ifndef _GLIBCXX_NONSHARED_CXX11_110 ++using namespace std; ++ ++namespace __gnu_debug ++{ ++ void ++ _Safe_iterator_base:: ++ _M_reset() throw () ++ { ++ _M_sequence = 0; ++ _M_version = 0; ++ _M_prior = 0; ++ _M_next = 0; ++ } ++ ++ _Safe_unordered_container_base* ++ _Safe_local_iterator_base:: ++ _M_get_container() const _GLIBCXX_NOEXCEPT ++ { return static_cast<_Safe_unordered_container_base*>(_M_sequence); } ++ ++ void ++ _Safe_local_iterator_base:: ++ _M_attach_single(_Safe_sequence_base* __cont, bool __constant) throw () ++ { ++ _M_detach_single(); ++ ++ // Attach to the new container (if there is one) ++ if (__cont) ++ { ++ _M_sequence = __cont; ++ _M_version = _M_sequence->_M_version; ++ _M_get_container()->_M_attach_local_single(this, __constant); ++ } ++ } ++ ++ void ++ _Safe_local_iterator_base:: ++ _M_detach_single() throw () ++ { ++ if (_M_sequence) ++ { ++ _M_get_container()->_M_detach_local_single(this); ++ _M_reset(); ++ } ++ } ++ ++ void ++ _Safe_unordered_container_base:: ++ _M_attach_local_single(_Safe_iterator_base* __it, bool __constant) throw () ++ { ++ _Safe_iterator_base*& __its = ++ __constant ? _M_const_local_iterators : _M_local_iterators; ++ __it->_M_next = __its; ++ if (__it->_M_next) ++ __it->_M_next->_M_prior = __it; ++ __its = __it; ++ } ++ ++ void ++ _Safe_unordered_container_base:: ++ _M_detach_local_single(_Safe_iterator_base* __it) throw () ++ { ++ // Remove __it from this container's list ++ __it->_M_unlink(); ++ if (_M_const_local_iterators == __it) ++ _M_const_local_iterators = __it->_M_next; ++ if (_M_local_iterators == __it) ++ _M_local_iterators = __it->_M_next; ++ } ++ ++} // namespace __gnu_debug ++ ++asm (".hidden _ZN11__gnu_debug19_Safe_iterator_base8_M_resetEv"); ++asm (".hidden _ZN11__gnu_debug25_Safe_local_iterator_base16_M_detach_singleEv"); ++asm (".hidden _ZN11__gnu_debug30_Safe_unordered_container_base22_M_attach_local_singleEPNS_19_Safe_iterator_baseEb"); ++asm (".hidden _ZN11__gnu_debug30_Safe_unordered_container_base22_M_detach_local_singleEPNS_19_Safe_iterator_baseE"); ++asm (".hidden _ZNK11__gnu_debug25_Safe_local_iterator_base16_M_get_containerEv"); ++#endif +diff --git a/libstdc++-v3/src/nonshared11/debug110.cc b/libstdc++-v3/src/nonshared11/debug110.cc +new file mode 100644 +index 000000000..364a72022 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared11/debug110.cc +@@ -0,0 +1,30 @@ ++// 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 ++// ++ ++#define _GLIBCXX_NONSHARED_CXX11_110 ++#include "debug.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..605d45d2b +--- /dev/null ++++ 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 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 "eh_atomics.h" ++ ++#define _GLIBCXX_EH_PTR_COMPAT ++ ++#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); ++ ++ __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..c9e134e7d +--- /dev/null ++++ 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 ++// 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 ++#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..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. ++ ++// 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/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..1fec5f32f +--- /dev/null ++++ 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 ++// 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 ++ ++#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/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-inst110.cc b/libstdc++-v3/src/nonshared11/locale-inst110.cc +new file mode 100644 +index 000000000..5369ad6e1 +--- /dev/null ++++ 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 ++// 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-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..285ebde40 +--- /dev/null ++++ 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 ++// 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 ++ 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 ++// 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/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-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..e6c5a4a4f +--- /dev/null ++++ b/libstdc++-v3/src/nonshared11/string-inst80.cc +@@ -0,0 +1,68 @@ ++// Components for manipulating sequences of characters -*- C++ -*- ++ ++// 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 ++// 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); ++ ++ template ++ S::pointer S::_S_allocate(S::allocator_type &, size_type); ++ ++_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..1cc4b325a +--- /dev/null ++++ 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 ++// 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-inst80.cc" ++#endif ++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..c466ab4e1 +--- /dev/null ++++ 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 ++// 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 ++#include "locale-inst80.cc" ++#endif ++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..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/nonshared17/Makefile.am b/libstdc++-v3/src/nonshared17/Makefile.am +new file mode 100644 +index 000000000..0772d098c +--- /dev/null ++++ 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 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 = libnonshared17convenience80.la \ ++ libnonshared17convenience110.la ++ ++headers = ++ ++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 ++ ++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 ++ ++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) ++ ++vpath % $(top_srcdir)/src/nonshared17 ++ ++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 ++# 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..3c5ce4aaa +--- /dev/null ++++ b/libstdc++-v3/src/nonshared17/Makefile.in +@@ -0,0 +1,817 @@ ++# 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@ ++ ++VPATH = @srcdir@ ++am__is_gnu_make = { \ ++ if test -z '$(MAKELEVEL)'; then \ ++ false; \ ++ elif test -n '$(MAKE_HOST)'; then \ ++ true; \ ++ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ ++ true; \ ++ else \ ++ false; \ ++ fi; \ ++} ++am__make_running_with_option = \ ++ case $${target_option-} in \ ++ ?) ;; \ ++ *) echo "am__make_running_with_option: internal error: invalid" \ ++ "target option '$${target_option-}' specified" >&2; \ ++ exit 1;; \ ++ esac; \ ++ has_opt=no; \ ++ sane_makeflags=$$MAKEFLAGS; \ ++ if $(am__is_gnu_make); then \ ++ sane_makeflags=$$MFLAGS; \ ++ else \ ++ case $$MAKEFLAGS in \ ++ *\\[\ \ ]*) \ ++ bs=\\; \ ++ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ ++ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ ++ esac; \ ++ fi; \ ++ skip_next=no; \ ++ strip_trailopt () \ ++ { \ ++ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ ++ }; \ ++ for flg in $$sane_makeflags; do \ ++ test $$skip_next = yes && { skip_next=no; continue; }; \ ++ case $$flg in \ ++ *=*|--*) continue;; \ ++ -*I) strip_trailopt 'I'; skip_next=yes;; \ ++ -*I?*) strip_trailopt 'I';; \ ++ -*O) strip_trailopt 'O'; skip_next=yes;; \ ++ -*O?*) strip_trailopt 'O';; \ ++ -*l) strip_trailopt 'l'; skip_next=yes;; \ ++ -*l?*) strip_trailopt 'l';; \ ++ -[dEDm]) skip_next=yes;; \ ++ -[JT]) skip_next=yes;; \ ++ esac; \ ++ case $$flg in \ ++ *$$target_option*) has_opt=yes; break;; \ ++ esac; \ ++ done; \ ++ test $$has_opt = yes ++am__make_dryrun = (target_option=n; $(am__make_running_with_option)) ++am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = @build@ ++host_triplet = @host@ ++target_triplet = @target@ ++subdir = src/nonshared17 ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ ++ $(top_srcdir)/../config/enable.m4 \ ++ $(top_srcdir)/../config/futex.m4 \ ++ $(top_srcdir)/../config/hwcaps.m4 \ ++ $(top_srcdir)/../config/iconv.m4 \ ++ $(top_srcdir)/../config/lead-dot.m4 \ ++ $(top_srcdir)/../config/lib-ld.m4 \ ++ $(top_srcdir)/../config/lib-link.m4 \ ++ $(top_srcdir)/../config/lib-prefix.m4 \ ++ $(top_srcdir)/../config/lthostflags.m4 \ ++ $(top_srcdir)/../config/multi.m4 \ ++ $(top_srcdir)/../config/no-executables.m4 \ ++ $(top_srcdir)/../config/override.m4 \ ++ $(top_srcdir)/../config/toolexeclibdir.m4 \ ++ $(top_srcdir)/../config/unwind_ipinfo.m4 \ ++ $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \ ++ $(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \ ++ $(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/crossconfig.m4 \ ++ $(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \ ++ $(top_srcdir)/../config/gc++filt.m4 \ ++ $(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \ ++ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++DIST_COMMON = $(srcdir)/Makefile.am ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++LTLIBRARIES = $(noinst_LTLIBRARIES) ++libnonshared17convenience110_la_LIBADD = ++@ENABLE_DUAL_ABI_TRUE@am__objects_1 = cow-fs_dir110.lo ++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 \ ++@ENABLE_EXTERN_TEMPLATE_TRUE@ $(am__objects_3) ++am_libnonshared17convenience110_la_OBJECTS = $(am__objects_2) \ ++ $(am__objects_4) ++libnonshared17convenience110_la_OBJECTS = \ ++ $(am_libnonshared17convenience110_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 = ++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 = 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_8) ++libnonshared17convenience80_la_OBJECTS = \ ++ $(am_libnonshared17convenience80_la_OBJECTS) ++AM_V_P = $(am__v_P_@AM_V@) ++am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) ++am__v_P_0 = false ++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_at = $(am__v_at_@AM_V@) ++am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) ++am__v_at_0 = @ ++am__v_at_1 = ++DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) ++depcomp = ++am__depfiles_maybe = ++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 = ++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 = $(libnonshared17convenience110_la_SOURCES) \ ++ $(libnonshared17convenience80_la_SOURCES) ++am__can_run_installinfo = \ ++ case $$AM_UPDATE_INFO_DIR in \ ++ n|no|NO) false;; \ ++ *) (install-info --version) >/dev/null 2>&1;; \ ++ esac ++am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) ++# Read a list of newline-separated strings from the standard input, ++# and print each of them once, without duplicates. Input order is ++# *not* preserved. ++am__uniquify_input = $(AWK) '\ ++ BEGIN { nonempty = 0; } \ ++ { items[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in items) print i; }; } \ ++' ++# Make sure the list of sources is unique. This is necessary because, ++# e.g., the same source file might be shared among _SOURCES variables ++# for different programs/libraries. ++am__define_uniq_tagged_files = \ ++ list='$(am__tagged_files)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | $(am__uniquify_input)` ++ETAGS = etags ++CTAGS = ctags ++ABI_TWEAKS_SRCDIR = @ABI_TWEAKS_SRCDIR@ ++ACLOCAL = @ACLOCAL@ ++ALLOCATOR_H = @ALLOCATOR_H@ ++ALLOCATOR_NAME = @ALLOCATOR_NAME@ ++ALLOC_FILE = @ALLOC_FILE@ ++AMTAR = @AMTAR@ ++AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ ++AR = @AR@ ++AS = @AS@ ++ATOMICITY_SRCDIR = @ATOMICITY_SRCDIR@ ++ATOMIC_FLAGS = @ATOMIC_FLAGS@ ++ATOMIC_WORD_SRCDIR = @ATOMIC_WORD_SRCDIR@ ++AUTOCONF = @AUTOCONF@ ++AUTOHEADER = @AUTOHEADER@ ++AUTOMAKE = @AUTOMAKE@ ++AWK = @AWK@ ++BACKTRACE_CPPFLAGS = @BACKTRACE_CPPFLAGS@ ++BACKTRACE_SUPPORTED = @BACKTRACE_SUPPORTED@ ++BACKTRACE_SUPPORTS_THREADS = @BACKTRACE_SUPPORTS_THREADS@ ++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@ ++CFLAGS = @CFLAGS@ ++CLOCALE_CC = @CLOCALE_CC@ ++CLOCALE_H = @CLOCALE_H@ ++CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@ ++CMESSAGES_CC = @CMESSAGES_CC@ ++CMESSAGES_H = @CMESSAGES_H@ ++CMONEY_CC = @CMONEY_CC@ ++CNUMERIC_CC = @CNUMERIC_CC@ ++CPP = @CPP@ ++CPPFLAGS = @CPPFLAGS@ ++CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@ ++CPU_OPT_BITS_RANDOM = @CPU_OPT_BITS_RANDOM@ ++CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@ ++CSTDIO_H = @CSTDIO_H@ ++CTIME_CC = @CTIME_CC@ ++CTIME_H = @CTIME_H@ ++CXX = @CXX@ ++CXXCPP = @CXXCPP@ ++CXXFILT = @CXXFILT@ ++CXXFLAGS = @CXXFLAGS@ ++CYGPATH_W = @CYGPATH_W@ ++C_INCLUDE_DIR = @C_INCLUDE_DIR@ ++DBLATEX = @DBLATEX@ ++DEBUG_FLAGS = @DEBUG_FLAGS@ ++DEFS = @DEFS@ ++DOT = @DOT@ ++DOXYGEN = @DOXYGEN@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ ++ECHO_C = @ECHO_C@ ++ECHO_N = @ECHO_N@ ++ECHO_T = @ECHO_T@ ++EGREP = @EGREP@ ++EH_POOL_FLAGS = @EH_POOL_FLAGS@ ++ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@ ++EXEEXT = @EXEEXT@ ++EXTRA_CFLAGS = @EXTRA_CFLAGS@ ++EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ ++FGREP = @FGREP@ ++FORMAT_FILE = @FORMAT_FILE@ ++FREESTANDING_FLAGS = @FREESTANDING_FLAGS@ ++GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@ ++GLIBCXX_LIBS = @GLIBCXX_LIBS@ ++GREP = @GREP@ ++HWCAP_CFLAGS = @HWCAP_CFLAGS@ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++LD = @LD@ ++LDFLAGS = @LDFLAGS@ ++LIBICONV = @LIBICONV@ ++LIBOBJS = @LIBOBJS@ ++LIBS = @LIBS@ ++LIBTOOL = @LIBTOOL@ ++LIPO = @LIPO@ ++LN_S = @LN_S@ ++LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ ++LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ ++LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@ ++LTLIBICONV = @LTLIBICONV@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAINT = @MAINT@ ++MAKEINFO = @MAKEINFO@ ++MKDIR_P = @MKDIR_P@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ ++OPT_LDFLAGS = @OPT_LDFLAGS@ ++OS_INC_SRCDIR = @OS_INC_SRCDIR@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ ++PACKAGE = @PACKAGE@ ++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ ++PACKAGE_NAME = @PACKAGE_NAME@ ++PACKAGE_STRING = @PACKAGE_STRING@ ++PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_URL = @PACKAGE_URL@ ++PACKAGE_VERSION = @PACKAGE_VERSION@ ++PATH_SEPARATOR = @PATH_SEPARATOR@ ++PDFLATEX = @PDFLATEX@ ++RANLIB = @RANLIB@ ++SECTION_FLAGS = @SECTION_FLAGS@ ++SECTION_LDFLAGS = @SECTION_LDFLAGS@ ++SED = @SED@ ++SET_MAKE = @SET_MAKE@ ++SHELL = @SHELL@ ++STRIP = @STRIP@ ++SYMVER_FILE = @SYMVER_FILE@ ++TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ ++USE_NLS = @USE_NLS@ ++VERSION = @VERSION@ ++VIEW_FILE = @VIEW_FILE@ ++VTV_CXXFLAGS = @VTV_CXXFLAGS@ ++VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@ ++VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@ ++WARN_FLAGS = @WARN_FLAGS@ ++XMLCATALOG = @XMLCATALOG@ ++XMLLINT = @XMLLINT@ ++XSLTPROC = @XSLTPROC@ ++XSL_STYLE_DIR = @XSL_STYLE_DIR@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_CC = @ac_ct_CC@ ++ac_ct_CXX = @ac_ct_CXX@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ++am__leading_dot = @am__leading_dot@ ++am__tar = @am__tar@ ++am__untar = @am__untar@ ++baseline_dir = @baseline_dir@ ++baseline_subdir_switch = @baseline_subdir_switch@ ++bindir = @bindir@ ++build = @build@ ++build_alias = @build_alias@ ++build_cpu = @build_cpu@ ++build_os = @build_os@ ++build_vendor = @build_vendor@ ++builddir = @builddir@ ++check_msgfmt = @check_msgfmt@ ++datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ ++enable_shared = @enable_shared@ ++enable_static = @enable_static@ ++exec_prefix = @exec_prefix@ ++get_gcc_base_ver = @get_gcc_base_ver@ ++glibcxx_MOFILES = @glibcxx_MOFILES@ ++glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@ ++glibcxx_POFILES = @glibcxx_POFILES@ ++glibcxx_builddir = @glibcxx_builddir@ ++glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@ ++glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@ ++glibcxx_cxx98_abi = @glibcxx_cxx98_abi@ ++glibcxx_localedir = @glibcxx_localedir@ ++glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@ ++glibcxx_prefixdir = @glibcxx_prefixdir@ ++glibcxx_srcdir = @glibcxx_srcdir@ ++glibcxx_toolexecdir = @glibcxx_toolexecdir@ ++glibcxx_toolexeclibdir = @glibcxx_toolexeclibdir@ ++gxx_include_dir = @gxx_include_dir@ ++host = @host@ ++host_alias = @host_alias@ ++host_cpu = @host_cpu@ ++host_os = @host_os@ ++host_vendor = @host_vendor@ ++htmldir = @htmldir@ ++includedir = @includedir@ ++infodir = @infodir@ ++install_sh = @install_sh@ ++libdir = @libdir@ ++libexecdir = @libexecdir@ ++libtool_VERSION = @libtool_VERSION@ ++localedir = @localedir@ ++localstatedir = @localstatedir@ ++lt_host_flags = @lt_host_flags@ ++mandir = @mandir@ ++mkdir_p = @mkdir_p@ ++multi_basedir = @multi_basedir@ ++oldincludedir = @oldincludedir@ ++pdfdir = @pdfdir@ ++port_specific_symbol_files = @port_specific_symbol_files@ ++prefix = @prefix@ ++program_transform_name = @program_transform_name@ ++psdir = @psdir@ ++python_mod_dir = @python_mod_dir@ ++sbindir = @sbindir@ ++sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ ++sysconfdir = @sysconfdir@ ++target = @target@ ++target_alias = @target_alias@ ++target_cpu = @target_cpu@ ++target_os = @target_os@ ++target_vendor = @target_vendor@ ++thread_header = @thread_header@ ++tmake_file = @tmake_file@ ++top_build_prefix = @top_build_prefix@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ ++toplevel_builddir = @toplevel_builddir@ ++toplevel_srcdir = @toplevel_srcdir@ ++ ++# May be used by various substitution variables. ++gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER) ++MAINT_CHARSET = latin1 ++mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs ++PWD_COMMAND = $${PWDCMD-pwd} ++STAMP = echo timestamp > ++toolexecdir = $(glibcxx_toolexecdir) ++toolexeclibdir = $(glibcxx_toolexeclibdir) ++@ENABLE_WERROR_FALSE@WERROR_FLAG = ++@ENABLE_WERROR_TRUE@WERROR_FLAG = -Werror ++@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_TRUE@LDBL_128_FLAGS = $(LONG_DOUBLE_128_FLAGS) ++ ++# These bits are all figured out from configure. Look in acinclude.m4 ++# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS. ++CONFIG_CXXFLAGS = \ ++ $(SECTION_FLAGS) $(HWCAP_CFLAGS) -frandom-seed=$@ $(LDBL_128_FLAGS) ++ ++WARN_CXXFLAGS = \ ++ $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once ++ ++ ++# -I/-D flags to pass when compiling. ++AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS) ++ ++# Convenience library for C++17 runtime. ++noinst_LTLIBRARIES = libnonshared17convenience80.la \ ++ libnonshared17convenience110.la ++ ++headers = ++@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_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 ++ ++@ENABLE_DUAL_ABI_FALSE@extra_fs_sources110 = ++@ENABLE_DUAL_ABI_TRUE@extra_fs_sources110 = \ ++@ENABLE_DUAL_ABI_TRUE@ cow-fs_dir110.cc ++ ++# XTEMPLATE_FLAGS = ++@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources80 = ++ ++# XTEMPLATE_FLAGS = -fno-implicit-templates ++@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_sources80) ++ ++@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources110 = ++@ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources110 = \ ++@ENABLE_EXTERN_TEMPLATE_TRUE@ ostream-inst110.cc \ ++@ENABLE_EXTERN_TEMPLATE_TRUE@ string-inst110.cc \ ++@ENABLE_EXTERN_TEMPLATE_TRUE@ $(extra_string_inst_sources110) ++ ++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) ++ ++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 ++# 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 $@ ++ ++all: all-am ++ ++.SUFFIXES: ++.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 \ ++ *$$dep*) \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps src/nonshared17/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --foreign --ignore-deps src/nonshared17/Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++$(top_srcdir)/fragment.am $(am__empty): ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++ ++clean-noinstLTLIBRARIES: ++ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) ++ @list='$(noinst_LTLIBRARIES)'; \ ++ locs=`for p in $$list; do echo $$p; done | \ ++ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ ++ sort -u`; \ ++ test -z "$$locs" || { \ ++ echo rm -f $${locs}; \ ++ rm -f $${locs}; \ ++ } ++ ++libnonshared17convenience110.la: $(libnonshared17convenience110_la_OBJECTS) $(libnonshared17convenience110_la_DEPENDENCIES) $(EXTRA_libnonshared17convenience110_la_DEPENDENCIES) ++ $(AM_V_CXXLD)$(CXXLINK) $(libnonshared17convenience110_la_OBJECTS) $(libnonshared17convenience110_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) ++ ++mostlyclean-compile: ++ -rm -f *.$(OBJEXT) ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++.cc.o: ++ $(AM_V_CXX)$(CXXCOMPILE) -c -o $@ $< ++ ++.cc.obj: ++ $(AM_V_CXX)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` ++ ++.cc.lo: ++ $(AM_V_CXX)$(LTCXXCOMPILE) -c -o $@ $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++ID: $(am__tagged_files) ++ $(am__define_uniq_tagged_files); mkid -fID $$unique ++tags: tags-am ++TAGS: tags ++ ++tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ set x; \ ++ here=`pwd`; \ ++ $(am__define_uniq_tagged_files); \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ ++ test -n "$$unique" || unique=$$empty_fix; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ ++ fi ++ctags: ctags-am ++ ++CTAGS: ctags ++ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ $(am__define_uniq_tagged_files); \ ++ test -z "$(CTAGS_ARGS)$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" ++cscopelist: cscopelist-am ++ ++cscopelist-am: $(am__tagged_files) ++ list='$(am__tagged_files)'; \ ++ case "$(srcdir)" in \ ++ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ ++ *) sdir=$(subdir)/$(srcdir) ;; \ ++ esac; \ ++ for i in $$list; do \ ++ if test -f "$$i"; then \ ++ echo "$(subdir)/$$i"; \ ++ else \ ++ echo "$$sdir/$$i"; \ ++ fi; \ ++ done >> $(top_builddir)/cscope.files ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++check-am: all-am ++check: check-am ++all-am: Makefile $(LTLIBRARIES) ++installdirs: ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ if test -z '$(STRIP)'; then \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ install; \ ++ else \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ ++ fi ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ ++ mostlyclean-am ++ ++distclean: distclean-am ++ -rm -f Makefile ++distclean-am: clean-am distclean-compile distclean-generic \ ++ distclean-tags ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: ++ ++.MAKE: install-am install-strip ++ ++.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ ++ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ ++ ctags-am distclean distclean-compile distclean-generic \ ++ distclean-libtool distclean-tags dvi dvi-am html html-am info \ ++ info-am install install-am install-data install-data-am \ ++ install-dvi install-dvi-am install-exec install-exec-am \ ++ install-html install-html-am install-info install-info-am \ ++ install-man install-pdf install-pdf-am install-ps \ ++ install-ps-am install-strip installcheck installcheck-am \ ++ installdirs maintainer-clean maintainer-clean-generic \ ++ mostlyclean mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ ++ uninstall-am ++ ++.PRECIOUS: Makefile ++ ++ ++vpath % $(top_srcdir)/src/nonshared17 ++ ++# 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/nonshared17/cow-fs_dir.cc b/libstdc++-v3/src/nonshared17/cow-fs_dir.cc +new file mode 100644 +index 000000000..1af9c4b97 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared17/cow-fs_dir.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 ++// 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++17/cow-fs_dir.cc" ++asm (".hidden _ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info"); ++asm (".hidden _ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EE3getEv"); ++asm (".hidden _ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EE6uniqueEv"); ++asm (".hidden _ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EE9use_countEv"); ++//asm (".hidden _ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv"); ++asm (".hidden _ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info"); ++asm (".hidden _ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EE3getEv"); ++asm (".hidden _ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EE6uniqueEv"); ++asm (".hidden _ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EE9use_countEv"); ++//asm (".hidden _ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv"); ++asm (".hidden _ZNSt10filesystem4_Dir7advanceEbRSt10error_code"); ++asm (".hidden _ZNSt10filesystem4_DirD1Ev"); ++asm (".hidden _ZNSt10filesystem4_DirD2Ev"); ++#ifdef __i386__ ++asm (".hidden _ZNSt10filesystem9_Dir_base7advanceEbRSt10error_code"); ++#endif ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EE4swapERS5_"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EE5resetEv"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEaSEOS5_"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EDn"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1ERKSt10__weak_ptrIS2_LS4_2EESt9nothrow_t"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EDn"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2ERKSt10__weak_ptrIS2_LS4_2EESt9nothrow_t"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EE4swapERS4_"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EE5resetEv"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEC1EDn"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEC1ERKSt10__weak_ptrIS1_LS3_2EESt9nothrow_t"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEC2EDn"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE2EEC2ERKSt10__weak_ptrIS1_LS3_2EESt9nothrow_t"); ++asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem28recursive_directory_iterator10_Dir_stackESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem28recursive_directory_iterator10_Dir_stackESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem28recursive_directory_iterator10_Dir_stackESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem28recursive_directory_iterator10_Dir_stackESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED0Ev"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem28recursive_directory_iterator10_Dir_stackESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED1Ev"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem4_DirESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem4_DirESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem4_DirESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem4_DirESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED0Ev"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem4_DirESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED1Ev"); ++asm (".hidden _ZNSt5dequeINSt10filesystem4_DirESaIS1_EE12emplace_backIIS1_EEERS1_DpOT_"); ++asm (".hidden _ZNSt5dequeINSt10filesystem4_DirESaIS1_EE12emplace_backIJS1_EEERS1_DpOT_"); ++//asm (".hidden _ZNSt5dequeINSt10filesystem4_DirESaIS1_EE16_M_push_back_auxIIRP11__dirstreamRKNS0_4pathEEEEvDpOT_"); ++//asm (".hidden _ZNSt5dequeINSt10filesystem4_DirESaIS1_EE16_M_push_back_auxIJRP11__dirstreamRKNS0_4pathEEEEvDpOT_"); ++asm (".hidden _ZNSt5dequeINSt10filesystem4_DirESaIS1_EED1Ev"); ++asm (".hidden _ZNSt5dequeINSt10filesystem4_DirESaIS1_EED2Ev"); ++asm (".hidden _ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTISt23_Sp_counted_ptr_inplaceINSt10filesystem28recursive_directory_iterator10_Dir_stackESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTISt23_Sp_counted_ptr_inplaceINSt10filesystem4_DirESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTSSt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTSSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTSSt19_Sp_make_shared_tag"); ++asm (".hidden _ZTSSt23_Sp_counted_ptr_inplaceINSt10filesystem28recursive_directory_iterator10_Dir_stackESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTSSt23_Sp_counted_ptr_inplaceINSt10filesystem4_DirESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTVSt23_Sp_counted_ptr_inplaceINSt10filesystem28recursive_directory_iterator10_Dir_stackESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTVSt23_Sp_counted_ptr_inplaceINSt10filesystem4_DirESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag"); ++#ifndef __aarch64__ ++asm (".hidden _ZNSsC1ISaIcEEEPKcRKS0_"); ++asm (".hidden _ZNSsC2ISaIcEEEPKcRKS0_"); ++#endif ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem28recursive_directory_iterator10_Dir_stackESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED2Ev"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem4_DirESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED2Ev"); ++#ifndef __i386__ ++//asm (".hidden _ZNSt5dequeINSt10filesystem4_DirESaIS1_EE17_M_reallocate_mapEmb"); ++asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv"); ++#endif ++#ifdef __i386__ ++asm (".hidden _ZNSt10filesystem4pathD1Ev"); ++asm (".hidden _ZNSt10filesystem4pathD2Ev"); ++//asm (".hidden _ZNSt5dequeINSt10filesystem4_DirESaIS1_EE17_M_reallocate_mapEjb"); ++#endif ++//asm (".hidden _ZNKSt10filesystem4_Dir11open_subdirEbbRSt10error_code"); ++asm (".hidden _ZNKSt10filesystem28recursive_directory_iterator10_Dir_stack12current_pathEv"); ++//asm (".hidden _ZNSt10filesystem4pathC2ISsS0_EERKT_NS0_6formatE"); ++//asm (".hidden _ZNSt10filesystem4pathC1ISsS0_EERKT_NS0_6formatE"); ++asm (".hidden _ZNSt10filesystem28recursive_directory_iterator7__eraseEPSt10error_code"); ++//asm (".hidden _ZNKSt10filesystem4_Dir16dir_and_pathnameEv"); ++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 +index 000000000..f12a8bf95 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared17/cow-fs_dir110.cc +@@ -0,0 +1,26 @@ ++// Class filesystem::directory_entry etc. -*- C++ -*- ++ ++// 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 ++// . ++ ++#define _GLIBCXX_USE_CXX11_ABI 0 ++#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..775f18db5 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared17/cow-fs_ops.cc +@@ -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 ++// 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++17/cow-fs_ops.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 _ZNSt5dequeINSt10filesystem4pathESaIS1_EE16_M_push_back_auxIJRKS1_EEEvDpOT_"); ++//asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE16_M_push_back_auxIIRKS1_EEEvDpOT_"); ++//asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE12emplace_backIJS1_EEERS1_DpOT_"); ++//asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE12emplace_backIIS1_EEERS1_DpOT_"); ++asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EED1Ev"); ++asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EED2Ev"); ++asm (".hidden _ZNSt10unique_ptrINSt10filesystem4path5_List5_ImplENS2_13_Impl_deleterEED1Ev"); ++asm (".hidden _ZNSt10unique_ptrINSt10filesystem4path5_List5_ImplENS2_13_Impl_deleterEED2Ev"); ++asm (".hidden _ZSt14__copy_move_a1ILb1EPNSt10filesystem4pathES1_EN9__gnu_cxx11__enable_ifIXsrSt23__is_random_access_iterIT0_NSt15iterator_traitsIS6_E17iterator_categoryEE7__valueESt15_Deque_iteratorIT1_RSC_PSC_EE6__typeES6_S6_SF_"); ++asm (".hidden _ZSt23__copy_move_backward_a1ILb1EPNSt10filesystem4pathES1_EN9__gnu_cxx11__enable_ifIXsrSt23__is_random_access_iterIT0_NSt15iterator_traitsIS6_E17iterator_categoryEE7__valueESt15_Deque_iteratorIT1_RSC_PSC_EE6__typeES6_S6_SF_"); ++//asm (".hidden _ZSt8_DestroyISt15_Deque_iteratorINSt10filesystem4pathERS2_PS2_EEvT_S6_"); ++asm (".hidden _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"); ++#endif ++#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_"); ++#endif ++#ifdef __i386__ ++asm (".hidden _ZNSt11_Deque_baseINSt10filesystem4pathESaIS1_EE17_M_initialize_mapEj"); ++asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE13_M_insert_auxINS1_8iteratorEEEvSt15_Deque_iteratorIS1_RS1_PS1_ET_SA_j"); ++asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE17_M_reallocate_mapEjb"); ++asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE23_M_new_elements_at_backEj"); ++asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE24_M_new_elements_at_frontEj"); ++//asm (".hidden _ZNSs6resizeEjc"); ++//asm (".hidden _ZNSs9_M_mutateEjjj"); ++//asm (".hidden _ZSt13move_backwardISt15_Deque_iteratorINSt10filesystem4pathERS2_PS2_ES5_ET0_T_S7_S6_"); ++//asm (".hidden _ZSt4moveISt15_Deque_iteratorINSt10filesystem4pathERS2_PS2_ES5_ET0_T_S7_S6_"); ++#endif ++#if defined(__s390x__) ++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 _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 _ZSt4copyINSt10filesystem4path8iteratorESt15_Deque_iteratorIS1_RS1_PS1_EET0_T_S8_S7_"); ++#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..b22ac70da +--- /dev/null ++++ b/libstdc++-v3/src/nonshared17/cow-fs_path.cc +@@ -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 ++// 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++17/cow-fs_path.cc" ++asm (".hidden _ZNKSt12__shared_ptrIKNSt10filesystem16filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info"); ++asm (".hidden _ZNKSt12__shared_ptrIKNSt10filesystem16filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EE3getEv"); ++asm (".hidden _ZNKSt12__shared_ptrIKNSt10filesystem16filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EE6uniqueEv"); ++asm (".hidden _ZNKSt12__shared_ptrIKNSt10filesystem16filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EE9use_countEv"); ++asm (".hidden _ZNKSt12__shared_ptrIKNSt10filesystem16filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EEcvbEv"); ++asm (".hidden _ZNKSt23__codecvt_abstract_baseIwc11__mbstate_tE2inERS0_PKcS4_RS4_PwS6_RS6_"); ++asm (".hidden _ZNKSt23__codecvt_abstract_baseIwc11__mbstate_tE3outERS0_PKwS4_RS4_PcS6_RS6_"); ++asm (".hidden _ZNSt10filesystem4path19preferred_separatorE"); ++asm (".hidden _ZNSt10filesystem4path5_List5clearEv"); ++asm (".hidden _ZNSt10filesystem4path5_List5_Impl13_M_erase_fromEPKNS0_5_CmptE"); ++asm (".hidden _ZNSt10filesystem4path5_List7reserveEib"); ++asm (".hidden _ZNSt10filesystem4path5_ListaSERKS1_"); ++asm (".hidden _ZNSt10filesystem4path5_ListC2ERKS1_"); ++asm (".hidden _ZNSt10filesystem4path5_ListC2Ev"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem16filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EE4swapERS6_"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem16filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EE5resetEv"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem16filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EEaSEOS6_"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem16filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EEC1EDn"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem16filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EEC1EOS6_"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem16filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EEC1ERKSt10__weak_ptrIS3_LS5_2EESt9nothrow_t"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem16filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EEC1Ev"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem16filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EEC2EDn"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem16filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EEC2EOS6_"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem16filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EEC2ERKSt10__weak_ptrIS3_LS5_2EESt9nothrow_t"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem16filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EEC2Ev"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem16filesystem_error5_ImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem16filesystem_error5_ImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem16filesystem_error5_ImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem16filesystem_error5_ImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED0Ev"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem16filesystem_error5_ImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED1Ev"); ++asm (".hidden _ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTISt23_Sp_counted_ptr_inplaceINSt10filesystem16filesystem_error5_ImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTSNSt10filesystem16filesystem_errorE"); ++asm (".hidden _ZTSSt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTSSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTSSt19_Sp_make_shared_tag"); ++asm (".hidden _ZTSSt23_Sp_counted_ptr_inplaceINSt10filesystem16filesystem_error5_ImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTVSt23_Sp_counted_ptr_inplaceINSt10filesystem16filesystem_error5_ImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag"); ++asm (".hidden _ZNSt10filesystem16filesystem_error5_Impl9make_whatESt17basic_string_viewIcSt11char_traitsIcEEPKNS_4pathES8_"); ++asm (".hidden _ZNSt10unique_ptrINSt10filesystem4path5_List5_ImplENS2_13_Impl_deleterEED1Ev"); ++asm (".hidden _ZNSt10unique_ptrINSt10filesystem4path5_List5_ImplENS2_13_Impl_deleterEED2Ev"); ++asm (".hidden _ZNSt12system_errorC1ESt10error_codeRKSs"); ++asm (".hidden _ZNSt12system_errorC2ESt10error_codeRKSs"); ++asm (".hidden _ZNSt15__allocated_ptrISaISt23_Sp_counted_ptr_inplaceINSt10filesystem16filesystem_error5_ImplESaIS3_ELN9__gnu_cxx12_Lock_policyE2EEEED1Ev"); ++asm (".hidden _ZNSt15__allocated_ptrISaISt23_Sp_counted_ptr_inplaceINSt10filesystem16filesystem_error5_ImplESaIS3_ELN9__gnu_cxx12_Lock_policyE2EEEED2Ev"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem16filesystem_error5_ImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED2Ev"); ++asm (".hidden _ZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_"); ++asm (".hidden _ZNSt10filesystem8__detail24__throw_conversion_errorEv"); ++//asm (".hidden _ZTIZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_E5_UCvt"); ++//asm (".hidden _ZTSZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_E5_UCvt"); ++//asm (".hidden _ZTVZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_E5_UCvt"); ++//asm (".hidden _ZZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_EN5_UCvtD0Ev"); ++//asm (".hidden _ZZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_EN5_UCvtD1Ev"); ++//asm (".hidden _ZZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_EN5_UCvtD2Ev"); ++asm (".hidden _ZNKSt10filesystem4path5_List5_Impl4copyEv"); ++//asm (".hidden _ZNSs6appendERKSs"); ++#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 _ZNSsC1ERKSsmm"); ++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"); ++asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEjjj"); ++asm (".hidden _ZNSs6insertEjPKcj"); ++asm (".hidden _ZNSs6resizeEjc"); ++asm (".hidden _ZNSs7reserveEj"); ++asm (".hidden _ZNSs9_M_mutateEjjj"); ++asm (".hidden _ZNSsC1ERKSsjj"); ++asm (".hidden _ZNSsC2ERKSsjj"); ++asm (".hidden _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_"); ++#endif ++asm (".hidden _ZNSt10filesystem4path8_CodecvtIwED0Ev"); ++asm (".hidden _ZNSt10filesystem4path8_CodecvtIwED1Ev"); ++asm (".hidden _ZNSt10filesystem4path8_CodecvtIwED2Ev"); ++asm (".hidden _ZNSt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EED0Ev"); ++asm (".hidden _ZNSt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EED1Ev"); ++asm (".hidden _ZNSt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EED2Ev"); ++asm (".hidden _ZTINSt10filesystem4path8_CodecvtIwEE"); ++asm (".hidden _ZTISt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EE"); ++asm (".hidden _ZTSNSt10filesystem4path8_CodecvtIwEE"); ++asm (".hidden _ZTSSt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EE"); ++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 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared17/cow-string-inst.cc +@@ -0,0 +1,23 @@ ++// 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++17/cow-string-inst.cc" +diff --git a/libstdc++-v3/src/nonshared17/cow-string-inst110.cc b/libstdc++-v3/src/nonshared17/cow-string-inst110.cc +new file mode 100644 +index 000000000..26bb5d6ef +--- /dev/null ++++ b/libstdc++-v3/src/nonshared17/cow-string-inst110.cc +@@ -0,0 +1,37 @@ ++// 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++17/cow-string-inst.cc" ++asm (".hidden _ZNSsC2ENSs12__sv_wrapperERKSaIcE"); ++asm (".hidden _ZNSsC1ENSs12__sv_wrapperERKSaIcE"); ++asm (".hidden _ZNSs12__sv_wrapperC2ESt17basic_string_viewIcSt11char_traitsIcEE"); ++asm (".hidden _ZNSs12__sv_wrapperC1ESt17basic_string_viewIcSt11char_traitsIcEE"); ++asm (".hidden _ZNSs17_S_to_string_viewESt17basic_string_viewIcSt11char_traitsIcEE"); ++asm (".hidden _ZNKSscvSt17basic_string_viewIcSt11char_traitsIcEEEv"); ++asm (".hidden _ZNSs4dataEv"); ++asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEEC2ENS2_12__sv_wrapperERKS1_"); ++asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEEC1ENS2_12__sv_wrapperERKS1_"); ++asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE12__sv_wrapperC2ESt17basic_string_viewIwS0_E"); ++asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE12__sv_wrapperC1ESt17basic_string_viewIwS0_E"); ++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..b82540753 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared17/floating_from_chars.cc +@@ -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 ++// 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++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"); ++#endif ++#if defined(__s390x__) || defined(__powerpc64__) ++//asm (".hidden _ZSt10from_charsPKcS0_RgSt12chars_format"); ++#endif ++#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"); ++#endif ++//asm (".hidden _ZZNSt8__detail25__from_chars_alnum_to_valILb0EEEhhE7__table"); ++#ifdef __i386__ ++//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"); ++#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..c687e0e3e +--- /dev/null ++++ b/libstdc++-v3/src/nonshared17/floating_from_chars110.cc +@@ -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 ++// 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 "../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"); ++//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"); ++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..bcac9787a +--- /dev/null ++++ b/libstdc++-v3/src/nonshared17/floating_to_chars.cc +@@ -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 ++// 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++17/floating_to_chars.cc" ++#ifdef __SIZEOF_INT128__ ++#if defined (__x86_64__) || defined(__powerpc64__) ++#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ ++//asm (".hidden _ZNSt8__detail13__to_chars_10IjEENSt9enable_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_10IjEENSt9enable_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_"); ++#endif ++#endif ++#if defined (__powerpc64__) ++#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ++//asm (".hidden _ZNSt8__detail10__to_charsIjEESt15to_chars_resultPcS2_T_i"); ++//asm (".hidden _ZNSt8__detail12__to_chars_8IjEENSt9enable_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__detail12__to_chars_8IjEENSt9enable_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 _ZNSt8__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_"); ++//asm (".hidden _ZNSt8__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_"); ++//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 ++#endif ++#if defined (__s390x__) ++//asm (".hidden _ZNSt8__detail12__to_chars_8IjEENSt9enable_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__detail12__to_chars_8IjEENSt9enable_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 _ZNSt8__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_"); ++//asm (".hidden _ZNSt8__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_"); ++//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"); ++//asm (".hidden _ZSt8to_charsPcS_gSt12chars_formati"); ++#endif ++#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"); ++#endif ++//asm (".hidden _ZZNSt8__detail18__to_chars_10_implIoEEvPcjT_E8__digits"); ++//asm (".hidden _ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits"); ++//asm (".hidden _ZZNSt8__detail18__to_chars_10_implImEEvPcjT_E8__digits"); ++#else ++//asm (".hidden _ZSt12__to_chars_iIiENSt9enable_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_EEE5valueESt15to_chars_resultE4typeEPcSO_S4_i"); ++//asm (".hidden _ZSt12__to_chars_iIiENSt9enable_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_EEE5valueESt15to_chars_resultE4typeEPcSO_S4_i"); ++//asm (".hidden _ZZNSt8__detail13__to_chars_16IjEENSt9enable_ifIXsrSt5__or_IIS2_IISt7is_sameINSt9remove_cvIT_E4typeEaES3_IS7_sES3_IS7_iES3_IS7_lES3_IS7_xEEES2_IIS3_IS7_hES3_IS7_tES3_IS7_jES3_IS7_mES3_IS7_yEEES3_IcS7_EEE5valueESt15to_chars_resultE4typeEPcSP_S5_E8__digits"); ++//asm (".hidden _ZZNSt8__detail13__to_chars_16IjEENSt9enable_ifIXsrSt5__or_IJS2_IJSt7is_sameINSt9remove_cvIT_E4typeEaES3_IS7_sES3_IS7_iES3_IS7_lES3_IS7_xEEES2_IJS3_IS7_hES3_IS7_tES3_IS7_jES3_IS7_mES3_IS7_yEEES3_IcS7_EEE5valueESt15to_chars_resultE4typeEPcSP_S5_E8__digits"); ++//asm (".hidden _ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits"); ++//asm (".hidden _ZZNSt8__detail18__to_chars_10_implIyEEvPcjT_E8__digits"); ++#if !defined(__i386__) ++//asm (".hidden _ZNSt8__detail12__to_chars_8IjEENSt9enable_ifIXsrSt5__or_IIS2_IISt7is_sameINSt9remove_cvIT_E4typeEaES3_IS7_sES3_IS7_iES3_IS7_lES3_IS7_xEEES2_IIS3_IS7_hES3_IS7_tES3_IS7_jES3_IS7_mES3_IS7_yEEES3_IcS7_EEE5valueESt15to_chars_resultE4typeEPcSP_S5_"); ++//asm (".hidden _ZNSt8__detail12__to_chars_8IjEENSt9enable_ifIXsrSt5__or_IJS2_IJSt7is_sameINSt9remove_cvIT_E4typeEaES3_IS7_sES3_IS7_iES3_IS7_lES3_IS7_xEEES2_IJS3_IS7_hES3_IS7_tES3_IS7_jES3_IS7_mES3_IS7_yEEES3_IcS7_EEE5valueESt15to_chars_resultE4typeEPcSP_S5_"); ++//asm (".hidden _ZNSt8__detail13__to_chars_16IjEENSt9enable_ifIXsrSt5__or_IJS2_IJSt7is_sameINSt9remove_cvIT_E4typeEaES3_IS7_sES3_IS7_iES3_IS7_lES3_IS7_xEEES2_IJS3_IS7_hES3_IS7_tES3_IS7_jES3_IS7_mES3_IS7_yEEES3_IcS7_EEE5valueESt15to_chars_resultE4typeEPcSP_S5_"); ++//asm (".hidden _ZNSt8__detail13__to_chars_16IjEENSt9enable_ifIXsrSt5__or_IIS2_IISt7is_sameINSt9remove_cvIT_E4typeEaES3_IS7_sES3_IS7_iES3_IS7_lES3_IS7_xEEES2_IIS3_IS7_hES3_IS7_tES3_IS7_jES3_IS7_mES3_IS7_yEEES3_IcS7_EEE5valueESt15to_chars_resultE4typeEPcSP_S5_"); ++//asm (".hidden _ZSt12__to_chars_iIjENSt9enable_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_EEE5valueESt15to_chars_resultE4typeEPcSO_S4_i"); ++//asm (".hidden _ZSt12__to_chars_iIjENSt9enable_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_EEE5valueESt15to_chars_resultE4typeEPcSO_S4_i"); ++#endif ++#endif ++#if !defined(__i386__) ++//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"); ++#endif ++//asm (".hidden _ZZNSt8__detail10__to_charsIjEESt15to_chars_resultPcS2_T_iE8__digits"); ++#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..ff2c57c5c +--- /dev/null ++++ b/libstdc++-v3/src/nonshared17/floating_to_chars110.cc +@@ -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 ++// 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 "../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 _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..616b849c8 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared17/fs_dir.cc +@@ -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 ++// 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++17/fs_dir.cc" ++asm (".hidden _ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info"); ++asm (".hidden _ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EE3getEv"); ++asm (".hidden _ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EE6uniqueEv"); ++asm (".hidden _ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EE9use_countEv"); ++//asm (".hidden _ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEcvbEv"); ++asm (".hidden _ZNKSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info"); ++asm (".hidden _ZNKSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EE3getEv"); ++asm (".hidden _ZNKSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EE6uniqueEv"); ++asm (".hidden _ZNKSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EE9use_countEv"); ++//asm (".hidden _ZNKSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEcvbEv"); ++asm (".hidden _ZNSt10filesystem7__cxx114_Dir7advanceEbRSt10error_code"); ++asm (".hidden _ZNSt10filesystem7__cxx114_DirD1Ev"); ++asm (".hidden _ZNSt10filesystem7__cxx114_DirD2Ev"); ++#ifdef __x86_64__ ++asm (".hidden _ZNSt10filesystem9_Dir_base7advanceEbRSt10error_code"); ++//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_"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1EDn"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC1ERKSt10__weak_ptrIS3_LS5_2EESt9nothrow_t"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2EDn"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE2EEC2ERKSt10__weak_ptrIS3_LS5_2EESt9nothrow_t"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EE4swapERS5_"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EE5resetEv"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC1EDn"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC1ERKSt10__weak_ptrIS2_LS4_2EESt9nothrow_t"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC2EDn"); ++asm (".hidden _ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC2ERKSt10__weak_ptrIS2_LS4_2EESt9nothrow_t"); ++asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackESaIS3_ELN9__gnu_cxx12_Lock_policyE2EED0Ev"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackESaIS3_ELN9__gnu_cxx12_Lock_policyE2EED1Ev"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx114_DirESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx114_DirESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx114_DirESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx114_DirESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED0Ev"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx114_DirESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED1Ev"); ++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114_DirESaIS2_EE12emplace_backIIS2_EEERS2_DpOT_"); ++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114_DirESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_"); ++//asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114_DirESaIS2_EE16_M_push_back_auxIIRP11__dirstreamRKNS1_4pathEEEEvDpOT_"); ++//asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114_DirESaIS2_EE16_M_push_back_auxIJRP11__dirstreamRKNS1_4pathEEEEvDpOT_"); ++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114_DirESaIS2_EED1Ev"); ++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114_DirESaIS2_EED2Ev"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1IS3_EEPKcRKS3_"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_"); ++asm (".hidden _ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTISt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTISt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx114_DirESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTSSt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTSSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTSSt19_Sp_make_shared_tag"); ++asm (".hidden _ZTSSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTSSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx114_DirESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTVSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTVSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx114_DirESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackESaIS3_ELN9__gnu_cxx12_Lock_policyE2EED2Ev"); ++asm (".hidden _ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx114_DirESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED2Ev"); ++#ifndef __i386__ ++asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv"); ++//asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114_DirESaIS2_EE17_M_reallocate_mapEmb"); ++#endif ++asm (".hidden _ZNSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEED1Ev"); ++asm (".hidden _ZNSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEED2Ev"); ++#ifdef __i386__ ++asm (".hidden _ZNSt10filesystem9_Dir_base7advanceEbRSt10error_code"); ++#endif ++//asm (".hidden _ZNKSt10filesystem7__cxx114_Dir11open_subdirEbbRSt10error_code"); ++asm (".hidden _ZNKSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stack12current_pathEv"); ++asm (".hidden _ZNSt10filesystem7__cxx1128recursive_directory_iterator7__eraseEPSt10error_code"); ++//asm (".hidden _ZNKSt10filesystem7__cxx114_Dir16dir_and_pathnameEv"); ++asm (".hidden _ZNKSt10filesystem7__cxx114_Dir7currentEv"); ++//asm (".hidden _ZNSt10filesystem7__cxx114_DirC1ERKNS0_4pathEbbbRSt10error_code"); ++//asm (".hidden _ZNSt10filesystem7__cxx114_DirC2ERKNS0_4pathEbbbRSt10error_code"); +diff --git a/libstdc++-v3/src/nonshared17/fs_dir110.cc b/libstdc++-v3/src/nonshared17/fs_dir110.cc +new file mode 100644 +index 000000000..eebc000f2 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared17/fs_dir110.cc +@@ -0,0 +1,41 @@ ++// Class filesystem::directory_entry etc. -*- 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 ++// . ++ ++#ifndef _GLIBCXX_USE_CXX11_ABI ++# define _GLIBCXX_USE_CXX11_ABI 1 ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++namespace fs = std::filesystem; ++ ++template ++std::__shared_ptr::operator bool () const noexcept; ++template ++std::__shared_ptr::operator bool () const noexcept; +diff --git a/libstdc++-v3/src/nonshared17/fs_ops80.cc b/libstdc++-v3/src/nonshared17/fs_ops80.cc +new file mode 100644 +index 000000000..eed139f91 +--- /dev/null ++++ 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 ++// 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++17/fs_ops.cc" ++asm (".hidden _ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEED0Ev"); ++asm (".hidden _ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEED1Ev"); ++asm (".hidden _ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEED2Ev"); ++asm (".hidden _ZNSt10filesystem12do_copy_fileEPKcS1_NS_26copy_options_existing_fileEP4statS4_RSt10error_code"); ++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 _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE16_M_push_back_auxIJRKS2_EEEvDpOT_"); ++//asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE16_M_push_back_auxIIRKS2_EEEvDpOT_"); ++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EED1Ev"); ++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EED2Ev"); ++asm (".hidden _ZTIN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE"); ++asm (".hidden _ZTSN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE"); ++asm (".hidden _ZTVN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE"); ++asm (".hidden _ZNKSt10filesystem7__cxx114path8filenameEv"); ++asm (".hidden _ZNSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEED1Ev"); ++asm (".hidden _ZNSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEED2Ev"); ++asm (".hidden _ZSt14__copy_move_a1ILb1EPNSt10filesystem7__cxx114pathES2_EN9__gnu_cxx11__enable_ifIXsrSt23__is_random_access_iterIT0_NSt15iterator_traitsIS7_E17iterator_categoryEE7__valueESt15_Deque_iteratorIT1_RSD_PSD_EE6__typeES7_S7_SG_"); ++asm (".hidden _ZSt23__copy_move_backward_a1ILb1EPNSt10filesystem7__cxx114pathES2_EN9__gnu_cxx11__enable_ifIXsrSt23__is_random_access_iterIT0_NSt15iterator_traitsIS7_E17iterator_categoryEE7__valueESt15_Deque_iteratorIT1_RSD_PSD_EE6__typeES7_S7_SG_"); ++//asm (".hidden _ZSt8_DestroyISt15_Deque_iteratorINSt10filesystem7__cxx114pathERS3_PS3_EEvT_S7_"); ++#ifndef __i386__ ++asm (".hidden _ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEC1EiSt13_Ios_Openmodem"); ++asm (".hidden _ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEC2EiSt13_Ios_Openmodem"); ++asm (".hidden _ZNSt10filesystem8do_spaceEPKcRmS2_S2_RSt10error_code"); ++asm (".hidden _ZNSt11_Deque_baseINSt10filesystem7__cxx114pathESaIS2_EE17_M_initialize_mapEm"); ++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE13_M_insert_auxINS2_8iteratorEEEvSt15_Deque_iteratorIS2_RS2_PS2_ET_SB_m"); ++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE17_M_reallocate_mapEmb"); ++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE23_M_new_elements_at_backEm"); ++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE24_M_new_elements_at_frontEm"); ++#if !defined(__powerpc64__) && !defined(__s390x__) ++//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 ++#endif ++#if defined(__s390x__) || defined(__powerpc64__) ++//asm (".hidden _ZSt13__copy_move_aILb0ENSt10filesystem7__cxx114path8iteratorESt15_Deque_iteratorIS2_RS2_PS2_EET1_T0_S9_S8_"); ++#endif ++#ifdef __i386__ ++asm (".hidden _ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEC1EiSt13_Ios_Openmodej"); ++asm (".hidden _ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEC2EiSt13_Ios_Openmodej"); ++asm (".hidden _ZNSt10filesystem8do_spaceEPKcRyS2_S2_RSt10error_code"); ++asm (".hidden _ZNSt11_Deque_baseINSt10filesystem7__cxx114pathESaIS2_EE17_M_initialize_mapEj"); ++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE13_M_insert_auxINS2_8iteratorEEEvSt15_Deque_iteratorIS2_RS2_PS2_ET_SB_j"); ++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE17_M_reallocate_mapEjb"); ++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE23_M_new_elements_at_backEj"); ++asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE24_M_new_elements_at_frontEj"); ++#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_traitsIcESaIcEE6resizeEmc"); ++#endif ++//asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE12emplace_backIIS2_EEERS2_DpOT_"); ++//asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114pathESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_"); ++#ifdef __powerpc64__ ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4swapERS4_"); ++//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEmc"); ++#endif ++#ifndef __i386__ ++//asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv"); ++#endif ++#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 _ZSt13move_backwardISt15_Deque_iteratorINSt10filesystem7__cxx114pathERS3_PS3_ES6_ET0_T_S8_S7_"); ++//asm (".hidden _ZSt4moveISt15_Deque_iteratorINSt10filesystem7__cxx114pathERS3_PS3_ES6_ET0_T_S8_S7_"); ++#endif ++#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..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 ++// 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++17/fs_path.cc" ++asm (".hidden _ZNKSt12__shared_ptrIKNSt10filesystem7__cxx1116filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info"); ++asm (".hidden _ZNKSt12__shared_ptrIKNSt10filesystem7__cxx1116filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EE3getEv"); ++asm (".hidden _ZNKSt12__shared_ptrIKNSt10filesystem7__cxx1116filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EE6uniqueEv"); ++asm (".hidden _ZNKSt12__shared_ptrIKNSt10filesystem7__cxx1116filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EE9use_countEv"); ++asm (".hidden _ZNKSt12__shared_ptrIKNSt10filesystem7__cxx1116filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EEcvbEv"); ++asm (".hidden _ZNKSt23__codecvt_abstract_baseIwc11__mbstate_tE2inERS0_PKcS4_RS4_PwS6_RS6_"); ++asm (".hidden _ZNKSt23__codecvt_abstract_baseIwc11__mbstate_tE3outERS0_PKwS4_RS4_PcS6_RS6_"); ++asm (".hidden _ZNSt10filesystem7__cxx114path19preferred_separatorE"); ++asm (".hidden _ZNSt10filesystem7__cxx114path5_List5clearEv"); ++asm (".hidden _ZNSt10filesystem7__cxx114path5_List5_Impl13_M_erase_fromEPKNS1_5_CmptE"); ++asm (".hidden _ZNSt10filesystem7__cxx114path5_List7reserveEib"); ++asm (".hidden _ZNSt10filesystem7__cxx114path5_ListaSERKS2_"); ++asm (".hidden _ZNSt10filesystem7__cxx114path5_ListC2ERKS2_"); ++asm (".hidden _ZNSt10filesystem7__cxx114path5_ListC2Ev"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem7__cxx1116filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EE4swapERS7_"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem7__cxx1116filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EE5resetEv"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem7__cxx1116filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EEaSEOS7_"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem7__cxx1116filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EEC1EDn"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem7__cxx1116filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EEC1EOS7_"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem7__cxx1116filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EEC1ERKSt10__weak_ptrIS4_LS6_2EESt9nothrow_t"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem7__cxx1116filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EEC1Ev"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem7__cxx1116filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EEC2EDn"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem7__cxx1116filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EEC2EOS7_"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem7__cxx1116filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EEC2ERKSt10__weak_ptrIS4_LS6_2EESt9nothrow_t"); ++asm (".hidden _ZNSt12__shared_ptrIKNSt10filesystem7__cxx1116filesystem_error5_ImplELN9__gnu_cxx12_Lock_policyE2EEC2Ev"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1116filesystem_error5_ImplESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1116filesystem_error5_ImplESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1116filesystem_error5_ImplESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1116filesystem_error5_ImplESaIS3_ELN9__gnu_cxx12_Lock_policyE2EED0Ev"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1116filesystem_error5_ImplESaIS3_ELN9__gnu_cxx12_Lock_policyE2EED1Ev"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1116filesystem_error5_ImplESaIS3_ELN9__gnu_cxx12_Lock_policyE2EED2Ev"); ++asm (".hidden _ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTISt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1116filesystem_error5_ImplESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTSNSt10filesystem7__cxx1116filesystem_errorE"); ++asm (".hidden _ZTSSt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTSSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZTSSt19_Sp_make_shared_tag"); ++asm (".hidden _ZTSSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1116filesystem_error5_ImplESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE"); ++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 _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"); ++asm (".hidden _ZNSt15__allocated_ptrISaISt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1116filesystem_error5_ImplESaIS4_ELN9__gnu_cxx12_Lock_policyE2EEEED2Ev"); ++#if !defined (__aarch64__) && !defined (__x86_64__) ++#ifndef __i386__ ++//asm (".hidden _ZNSt10filesystem7__cxx114pathaSISt17basic_string_viewIcSt11char_traitsIcEEEERNSt9enable_ifIXsrSt6__and_IISt6__not_ISt7is_sameINSt9remove_cvIT_E4typeES1_EES9_ISt7is_voidINSt14remove_pointerISC_E4typeEEENS0_8__detail20__constructible_fromISC_vEEEE5valueES1_E4typeERKSC_"); ++//asm (".hidden _ZNSt10filesystem7__cxx114pathaSISt17basic_string_viewIcSt11char_traitsIcEEEERNSt9enable_ifIXsrSt6__and_IJSt6__not_ISt7is_sameINSt9remove_cvIT_E4typeES1_EES9_ISt7is_voidINSt14remove_pointerISC_E4typeEEENS0_8__detail20__constructible_fromISC_vEEEE5valueES1_E4typeERKSC_"); ++#endif ++#endif ++//asm (".hidden _ZTIZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_E5_UCvt"); ++//asm (".hidden _ZTSZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_E5_UCvt"); ++//asm (".hidden _ZTVZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_E5_UCvt"); ++//asm (".hidden _ZZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_EN5_UCvtD0Ev"); ++//asm (".hidden _ZZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_EN5_UCvtD1Ev"); ++//asm (".hidden _ZZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_EN5_UCvtD2Ev"); ++asm (".hidden _ZNSt10filesystem7__cxx118__detail24__throw_conversion_errorEv"); ++#ifdef __powerpc64__ ++asm (".hidden _ZNKSt10filesystem7__cxx114path5_List5_Impl4copyEv"); ++#endif ++//asm (".hidden _ZNSt12_Destroy_auxILb0EE9__destroyIPNSt10filesystem7__cxx114path5_CmptEEEvT_S7_"); ++asm (".hidden _ZNKSt10filesystem7__cxx114path5_List5_Impl4copyEv"); ++#ifdef __aarch64__ ++asm (".hidden _ZNSt10filesystem7__cxx114path7_Parser4nextEv"); ++asm (".hidden _ZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_"); // bad ppc64le ++#endif ++asm (".hidden _ZNSt10filesystem7__cxx114path8_CodecvtIwED2Ev"); ++asm (".hidden _ZNSt10filesystem7__cxx114path8_CodecvtIwED1Ev"); ++asm (".hidden _ZNSt10filesystem7__cxx114path8_CodecvtIwED0Ev"); ++asm (".hidden _ZNSt12system_errorC2ESt10error_codeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"); ++asm (".hidden _ZNSt12system_errorC1ESt10error_codeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"); ++asm (".hidden _ZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_"); ++asm (".hidden _ZTVNSt10filesystem7__cxx114path8_CodecvtIwEE"); ++asm (".hidden _ZTSNSt10filesystem7__cxx114path8_CodecvtIwEE"); ++asm (".hidden _ZTINSt10filesystem7__cxx114path8_CodecvtIwEE"); ++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"); ++//asm (".hidden _ZTVZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_E5_UCvt"); ++//asm (".hidden _ZZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_EN5_UCvtD0Ev"); ++//asm (".hidden _ZZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_EN5_UCvtD1Ev"); ++//asm (".hidden _ZZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_EN5_UCvtD2Ev"); ++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 _ZNKSt10filesystem7__cxx114path5_List5_Impl4copyEv"); ++#endif ++#if defined(__aarch64__) || defined(__x86_64__) ++asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_mutateEmmPKwm"); ++#endif ++#ifdef __powerpc64__ ++asm (".hidden _ZNSt10filesystem7__cxx114path7_Parser4nextEv"); ++#endif ++#ifdef __x86_64__ ++asm (".hidden _ZNSt10filesystem7__cxx114path7_Parser4nextEv"); ++#endif ++#ifdef __i386__ ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEjc"); ++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"); ++asm (".hidden _ZNSt10filesystem7__cxx114path8_CodecvtIwED1Ev"); ++asm (".hidden _ZNSt10filesystem7__cxx114path8_CodecvtIwED2Ev"); ++//asm (".hidden _ZNSt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EED0Ev"); ++//asm (".hidden _ZNSt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EED1Ev"); ++//asm (".hidden _ZNSt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EED2Ev"); ++asm (".hidden _ZTINSt10filesystem7__cxx114path8_CodecvtIwEE"); ++//asm (".hidden _ZTISt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EE"); ++asm (".hidden _ZTSNSt10filesystem7__cxx114path8_CodecvtIwEE"); ++//asm (".hidden _ZTSSt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EE"); ++asm (".hidden _ZTVNSt10filesystem7__cxx114path8_CodecvtIwEE"); ++//asm (".hidden _ZTVSt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EE"); ++asm (".hidden _ZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_"); ++asm (".hidden _ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag"); ++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..b94792bd5 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared17/memory_resource.cc +@@ -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 ++// 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++17/memory_resource.cc" ++asm (".hidden _ZNKSt3pmr26synchronized_pool_resource11do_is_equalERKNS_15memory_resourceE"); ++asm (".hidden _ZNKSt3pmr28unsynchronized_pool_resource11do_is_equalERKNS_15memory_resourceE"); ++asm (".hidden _ZNSt3pmr15__pool_resource14_M_alloc_poolsEv"); ++asm (".hidden _ZNSt3pmr15__pool_resource7releaseEv"); ++asm (".hidden _ZNSt3pmr15__pool_resourceC1ERKNS_12pool_optionsEPNS_15memory_resourceE"); ++asm (".hidden _ZNSt3pmr15__pool_resourceC2ERKNS_12pool_optionsEPNS_15memory_resourceE"); ++asm (".hidden _ZNSt3pmr15__pool_resourceD1Ev"); ++asm (".hidden _ZNSt3pmr15__pool_resourceD2Ev"); ++asm (".hidden _ZNSt3pmr26synchronized_pool_resource15_M_alloc_tpoolsERSt10lock_guardISt12shared_mutexE"); ++asm (".hidden _ZNSt3pmr26synchronized_pool_resource22_M_alloc_shared_tpoolsERSt10lock_guardISt12shared_mutexE"); ++asm (".hidden _ZNSt3pmr26synchronized_pool_resource24_M_thread_specific_poolsEv"); ++asm (".hidden _ZNSt3pmr26synchronized_pool_resource7_TPoolsD1Ev"); ++asm (".hidden _ZNSt3pmr26synchronized_pool_resource7_TPoolsD2Ev"); ++asm (".hidden _ZNSt3pmr26synchronized_pool_resourceD0Ev"); ++asm (".hidden _ZNSt3pmr28unsynchronized_pool_resourceD0Ev"); ++asm (".hidden _ZTSNSt3pmr26synchronized_pool_resourceE"); ++asm (".hidden _ZTSNSt3pmr28unsynchronized_pool_resourceE"); ++asm (".hidden _ZTVNSt3pmr26synchronized_pool_resourceE"); ++asm (".hidden _ZTVNSt3pmr28unsynchronized_pool_resourceE"); ++asm (".hidden _ZNKSt3pmr25monotonic_buffer_resource11do_is_equalERKNS_15memory_resourceE"); ++asm (".hidden _ZNSt3pmr15__pool_resource5_Pool12try_allocateEv"); ++asm (".hidden _ZNSt3pmr15__pool_resource5_Pool9replenishEPNS_15memory_resourceERKNS_12pool_optionsE"); ++#ifndef __i386__ ++asm (".hidden _ZNSt3pmr15__pool_resource10deallocateEPvmm"); ++asm (".hidden _ZNSt3pmr15__pool_resource8allocateEmm"); ++asm (".hidden _ZNSt3pmr25monotonic_buffer_resource11do_allocateEmm"); ++asm (".hidden _ZNSt3pmr25monotonic_buffer_resource13do_deallocateEPvmm"); ++asm (".hidden _ZNSt3pmr28unsynchronized_pool_resource12_M_find_poolEm"); ++//asm (".hidden _ZNSt6vectorINSt3pmr15__pool_resource9_BigBlockENS0_21polymorphic_allocatorIS2_EEE17_M_realloc_insertIIRmS7_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S5_EEDpOT_"); ++//asm (".hidden _ZNSt6vectorINSt3pmr15__pool_resource9_BigBlockENS0_21polymorphic_allocatorIS2_EEE17_M_realloc_insertIJRmS7_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S5_EEDpOT_"); ++#endif ++#ifdef __i386__ ++asm (".hidden _ZNSt3pmr15__pool_resource10deallocateEPvjj"); ++//asm (".hidden _ZNSt3pmr15__pool_resource5_Pool10deallocateEPNS_15memory_resourceEPv"); ++asm (".hidden _ZNSt3pmr15__pool_resource8allocateEjj"); ++asm (".hidden _ZNSt3pmr25monotonic_buffer_resource11do_allocateEjj"); ++asm (".hidden _ZNSt3pmr25monotonic_buffer_resource13do_deallocateEPvjj"); ++asm (".hidden _ZNSt3pmr28unsynchronized_pool_resource12_M_find_poolEj"); ++//asm (".hidden _ZNSt6vectorINSt3pmr15__pool_resource9_BigBlockENS0_21polymorphic_allocatorIS2_EEE17_M_realloc_insertIIRjS7_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S5_EEDpOT_"); ++//asm (".hidden _ZNSt6vectorINSt3pmr15__pool_resource9_BigBlockENS0_21polymorphic_allocatorIS2_EEE17_M_realloc_insertIJRjS7_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S5_EEDpOT_"); ++#endif ++#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 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared17/ostream-inst.cc +@@ -0,0 +1,23 @@ ++// 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++17/ostream-inst.cc" +diff --git a/libstdc++-v3/src/nonshared17/ostream-inst110.cc b/libstdc++-v3/src/nonshared17/ostream-inst110.cc +new file mode 100644 +index 000000000..a9bc02f67 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared17/ostream-inst110.cc +@@ -0,0 +1,25 @@ ++// 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++17/ostream-inst.cc" ++asm (".hidden _ZNSolsEDn"); ++asm (".hidden _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEDn"); +diff --git a/libstdc++-v3/src/nonshared17/string-inst.cc b/libstdc++-v3/src/nonshared17/string-inst.cc +new file mode 100644 +index 000000000..7aa1c361c +--- /dev/null ++++ b/libstdc++-v3/src/nonshared17/string-inst.cc +@@ -0,0 +1,23 @@ ++// 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++17/string-inst.cc" +diff --git a/libstdc++-v3/src/nonshared17/string-inst110.cc b/libstdc++-v3/src/nonshared17/string-inst110.cc +new file mode 100644 +index 000000000..a317ca76e +--- /dev/null ++++ b/libstdc++-v3/src/nonshared17/string-inst110.cc +@@ -0,0 +1,37 @@ ++// 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++17/string-inst.cc" ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ENS4_12__sv_wrapperERKS3_"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ENS4_12__sv_wrapperERKS3_"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12__sv_wrapperC2ESt17basic_string_viewIcS2_E"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12__sv_wrapperC1ESt17basic_string_viewIcS2_E"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17_S_to_string_viewESt17basic_string_viewIcS2_E"); ++asm (".hidden _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ENS4_12__sv_wrapperERKS3_"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ENS4_12__sv_wrapperERKS3_"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12__sv_wrapperC2ESt17basic_string_viewIwS2_E"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12__sv_wrapperC1ESt17basic_string_viewIwS2_E"); ++asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE17_S_to_string_viewESt17basic_string_viewIwS2_E"); ++asm (".hidden _ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEcvSt17basic_string_viewIwS2_EEv"); ++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..8418914b1 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared20/Makefile.am +@@ -0,0 +1,124 @@ ++## Makefile for the C++20 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 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++20 runtime. ++noinst_LTLIBRARIES = libnonshared20convenience80.la \ ++ libnonshared20convenience110.la ++ ++headers = ++ ++if ENABLE_EXTERN_TEMPLATE ++# XTEMPLATE_FLAGS = -fno-implicit-templates ++inst_sources80 = sstream-inst80.cc ++else ++# XTEMPLATE_FLAGS = ++inst_sources80 = ++endif ++ ++sources80 = tzdb80.cc ++sources110 = tzdb110.cc ++ ++vpath % $(top_srcdir)/src/nonshared20 ++ ++if USE_STATIC_TZDATA ++tzdata.zi.h: $(top_srcdir)/src/c++20/tzdata.zi ++ echo 'static const char tzdata_chars[] = R"__libstdcxx__(' > $@.tmp ++ cat $^ >> $@.tmp ++ echo ')__libstdcxx__";' >> $@.tmp ++ mv $@.tmp $@ ++ ++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 ++ ++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 ++# 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++20 \ ++ $(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/nonshared20/Makefile.in b/libstdc++-v3/src/nonshared20/Makefile.in +new file mode 100644 +index 000000000..5bec80814 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared20/Makefile.in +@@ -0,0 +1,777 @@ ++# 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@ ++ ++VPATH = @srcdir@ ++am__is_gnu_make = { \ ++ if test -z '$(MAKELEVEL)'; then \ ++ false; \ ++ elif test -n '$(MAKE_HOST)'; then \ ++ true; \ ++ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ ++ true; \ ++ else \ ++ false; \ ++ fi; \ ++} ++am__make_running_with_option = \ ++ case $${target_option-} in \ ++ ?) ;; \ ++ *) echo "am__make_running_with_option: internal error: invalid" \ ++ "target option '$${target_option-}' specified" >&2; \ ++ exit 1;; \ ++ esac; \ ++ has_opt=no; \ ++ sane_makeflags=$$MAKEFLAGS; \ ++ if $(am__is_gnu_make); then \ ++ sane_makeflags=$$MFLAGS; \ ++ else \ ++ case $$MAKEFLAGS in \ ++ *\\[\ \ ]*) \ ++ bs=\\; \ ++ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ ++ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ ++ esac; \ ++ fi; \ ++ skip_next=no; \ ++ strip_trailopt () \ ++ { \ ++ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ ++ }; \ ++ for flg in $$sane_makeflags; do \ ++ test $$skip_next = yes && { skip_next=no; continue; }; \ ++ case $$flg in \ ++ *=*|--*) continue;; \ ++ -*I) strip_trailopt 'I'; skip_next=yes;; \ ++ -*I?*) strip_trailopt 'I';; \ ++ -*O) strip_trailopt 'O'; skip_next=yes;; \ ++ -*O?*) strip_trailopt 'O';; \ ++ -*l) strip_trailopt 'l'; skip_next=yes;; \ ++ -*l?*) strip_trailopt 'l';; \ ++ -[dEDm]) skip_next=yes;; \ ++ -[JT]) skip_next=yes;; \ ++ esac; \ ++ case $$flg in \ ++ *$$target_option*) has_opt=yes; break;; \ ++ esac; \ ++ done; \ ++ test $$has_opt = yes ++am__make_dryrun = (target_option=n; $(am__make_running_with_option)) ++am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = @build@ ++host_triplet = @host@ ++target_triplet = @target@ ++subdir = src/nonshared20 ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ ++ $(top_srcdir)/../config/enable.m4 \ ++ $(top_srcdir)/../config/futex.m4 \ ++ $(top_srcdir)/../config/hwcaps.m4 \ ++ $(top_srcdir)/../config/iconv.m4 \ ++ $(top_srcdir)/../config/lead-dot.m4 \ ++ $(top_srcdir)/../config/lib-ld.m4 \ ++ $(top_srcdir)/../config/lib-link.m4 \ ++ $(top_srcdir)/../config/lib-prefix.m4 \ ++ $(top_srcdir)/../config/lthostflags.m4 \ ++ $(top_srcdir)/../config/multi.m4 \ ++ $(top_srcdir)/../config/no-executables.m4 \ ++ $(top_srcdir)/../config/override.m4 \ ++ $(top_srcdir)/../config/toolexeclibdir.m4 \ ++ $(top_srcdir)/../config/unwind_ipinfo.m4 \ ++ $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \ ++ $(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \ ++ $(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/crossconfig.m4 \ ++ $(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \ ++ $(top_srcdir)/../config/gc++filt.m4 \ ++ $(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \ ++ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++DIST_COMMON = $(srcdir)/Makefile.am ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++LTLIBRARIES = $(noinst_LTLIBRARIES) ++libnonshared20convenience110_la_LIBADD = ++am__objects_1 = tzdb110.lo ++am_libnonshared20convenience110_la_OBJECTS = $(am__objects_1) ++libnonshared20convenience110_la_OBJECTS = \ ++ $(am_libnonshared20convenience110_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 = ++libnonshared20convenience80_la_LIBADD = ++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@) ++am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) ++am__v_P_0 = false ++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_at = $(am__v_at_@AM_V@) ++am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) ++am__v_at_0 = @ ++am__v_at_1 = ++DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) ++depcomp = ++am__depfiles_maybe = ++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 = ++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 = $(libnonshared20convenience110_la_SOURCES) \ ++ $(libnonshared20convenience80_la_SOURCES) ++am__can_run_installinfo = \ ++ case $$AM_UPDATE_INFO_DIR in \ ++ n|no|NO) false;; \ ++ *) (install-info --version) >/dev/null 2>&1;; \ ++ esac ++am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) ++# Read a list of newline-separated strings from the standard input, ++# and print each of them once, without duplicates. Input order is ++# *not* preserved. ++am__uniquify_input = $(AWK) '\ ++ BEGIN { nonempty = 0; } \ ++ { items[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in items) print i; }; } \ ++' ++# Make sure the list of sources is unique. This is necessary because, ++# e.g., the same source file might be shared among _SOURCES variables ++# for different programs/libraries. ++am__define_uniq_tagged_files = \ ++ list='$(am__tagged_files)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | $(am__uniquify_input)` ++ETAGS = etags ++CTAGS = ctags ++ABI_TWEAKS_SRCDIR = @ABI_TWEAKS_SRCDIR@ ++ACLOCAL = @ACLOCAL@ ++ALLOCATOR_H = @ALLOCATOR_H@ ++ALLOCATOR_NAME = @ALLOCATOR_NAME@ ++ALLOC_FILE = @ALLOC_FILE@ ++AMTAR = @AMTAR@ ++AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ ++AR = @AR@ ++AS = @AS@ ++ATOMICITY_SRCDIR = @ATOMICITY_SRCDIR@ ++ATOMIC_FLAGS = @ATOMIC_FLAGS@ ++ATOMIC_WORD_SRCDIR = @ATOMIC_WORD_SRCDIR@ ++AUTOCONF = @AUTOCONF@ ++AUTOHEADER = @AUTOHEADER@ ++AUTOMAKE = @AUTOMAKE@ ++AWK = @AWK@ ++BACKTRACE_CPPFLAGS = @BACKTRACE_CPPFLAGS@ ++BACKTRACE_SUPPORTED = @BACKTRACE_SUPPORTED@ ++BACKTRACE_SUPPORTS_THREADS = @BACKTRACE_SUPPORTS_THREADS@ ++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@ ++CFLAGS = @CFLAGS@ ++CLOCALE_CC = @CLOCALE_CC@ ++CLOCALE_H = @CLOCALE_H@ ++CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@ ++CMESSAGES_CC = @CMESSAGES_CC@ ++CMESSAGES_H = @CMESSAGES_H@ ++CMONEY_CC = @CMONEY_CC@ ++CNUMERIC_CC = @CNUMERIC_CC@ ++CPP = @CPP@ ++CPPFLAGS = @CPPFLAGS@ ++CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@ ++CPU_OPT_BITS_RANDOM = @CPU_OPT_BITS_RANDOM@ ++CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@ ++CSTDIO_H = @CSTDIO_H@ ++CTIME_CC = @CTIME_CC@ ++CTIME_H = @CTIME_H@ ++CXX = @CXX@ ++CXXCPP = @CXXCPP@ ++CXXFILT = @CXXFILT@ ++CXXFLAGS = @CXXFLAGS@ ++CYGPATH_W = @CYGPATH_W@ ++C_INCLUDE_DIR = @C_INCLUDE_DIR@ ++DBLATEX = @DBLATEX@ ++DEBUG_FLAGS = @DEBUG_FLAGS@ ++DEFS = @DEFS@ ++DOT = @DOT@ ++DOXYGEN = @DOXYGEN@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ ++ECHO_C = @ECHO_C@ ++ECHO_N = @ECHO_N@ ++ECHO_T = @ECHO_T@ ++EGREP = @EGREP@ ++EH_POOL_FLAGS = @EH_POOL_FLAGS@ ++ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@ ++EXEEXT = @EXEEXT@ ++EXTRA_CFLAGS = @EXTRA_CFLAGS@ ++EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ ++FGREP = @FGREP@ ++FORMAT_FILE = @FORMAT_FILE@ ++FREESTANDING_FLAGS = @FREESTANDING_FLAGS@ ++GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@ ++GLIBCXX_LIBS = @GLIBCXX_LIBS@ ++GREP = @GREP@ ++HWCAP_CFLAGS = @HWCAP_CFLAGS@ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++LD = @LD@ ++LDFLAGS = @LDFLAGS@ ++LIBICONV = @LIBICONV@ ++LIBOBJS = @LIBOBJS@ ++LIBS = @LIBS@ ++LIBTOOL = @LIBTOOL@ ++LIPO = @LIPO@ ++LN_S = @LN_S@ ++LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ ++LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ ++LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@ ++LTLIBICONV = @LTLIBICONV@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAINT = @MAINT@ ++MAKEINFO = @MAKEINFO@ ++MKDIR_P = @MKDIR_P@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ ++OPT_LDFLAGS = @OPT_LDFLAGS@ ++OS_INC_SRCDIR = @OS_INC_SRCDIR@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ ++PACKAGE = @PACKAGE@ ++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ ++PACKAGE_NAME = @PACKAGE_NAME@ ++PACKAGE_STRING = @PACKAGE_STRING@ ++PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_URL = @PACKAGE_URL@ ++PACKAGE_VERSION = @PACKAGE_VERSION@ ++PATH_SEPARATOR = @PATH_SEPARATOR@ ++PDFLATEX = @PDFLATEX@ ++RANLIB = @RANLIB@ ++SECTION_FLAGS = @SECTION_FLAGS@ ++SECTION_LDFLAGS = @SECTION_LDFLAGS@ ++SED = @SED@ ++SET_MAKE = @SET_MAKE@ ++SHELL = @SHELL@ ++STRIP = @STRIP@ ++SYMVER_FILE = @SYMVER_FILE@ ++TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ ++USE_NLS = @USE_NLS@ ++VERSION = @VERSION@ ++VIEW_FILE = @VIEW_FILE@ ++VTV_CXXFLAGS = @VTV_CXXFLAGS@ ++VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@ ++VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@ ++WARN_FLAGS = @WARN_FLAGS@ ++XMLCATALOG = @XMLCATALOG@ ++XMLLINT = @XMLLINT@ ++XSLTPROC = @XSLTPROC@ ++XSL_STYLE_DIR = @XSL_STYLE_DIR@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_CC = @ac_ct_CC@ ++ac_ct_CXX = @ac_ct_CXX@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ++am__leading_dot = @am__leading_dot@ ++am__tar = @am__tar@ ++am__untar = @am__untar@ ++baseline_dir = @baseline_dir@ ++baseline_subdir_switch = @baseline_subdir_switch@ ++bindir = @bindir@ ++build = @build@ ++build_alias = @build_alias@ ++build_cpu = @build_cpu@ ++build_os = @build_os@ ++build_vendor = @build_vendor@ ++builddir = @builddir@ ++check_msgfmt = @check_msgfmt@ ++datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ ++enable_shared = @enable_shared@ ++enable_static = @enable_static@ ++exec_prefix = @exec_prefix@ ++get_gcc_base_ver = @get_gcc_base_ver@ ++glibcxx_MOFILES = @glibcxx_MOFILES@ ++glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@ ++glibcxx_POFILES = @glibcxx_POFILES@ ++glibcxx_builddir = @glibcxx_builddir@ ++glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@ ++glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@ ++glibcxx_cxx98_abi = @glibcxx_cxx98_abi@ ++glibcxx_localedir = @glibcxx_localedir@ ++glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@ ++glibcxx_prefixdir = @glibcxx_prefixdir@ ++glibcxx_srcdir = @glibcxx_srcdir@ ++glibcxx_toolexecdir = @glibcxx_toolexecdir@ ++glibcxx_toolexeclibdir = @glibcxx_toolexeclibdir@ ++gxx_include_dir = @gxx_include_dir@ ++host = @host@ ++host_alias = @host_alias@ ++host_cpu = @host_cpu@ ++host_os = @host_os@ ++host_vendor = @host_vendor@ ++htmldir = @htmldir@ ++includedir = @includedir@ ++infodir = @infodir@ ++install_sh = @install_sh@ ++libdir = @libdir@ ++libexecdir = @libexecdir@ ++libtool_VERSION = @libtool_VERSION@ ++localedir = @localedir@ ++localstatedir = @localstatedir@ ++lt_host_flags = @lt_host_flags@ ++mandir = @mandir@ ++mkdir_p = @mkdir_p@ ++multi_basedir = @multi_basedir@ ++oldincludedir = @oldincludedir@ ++pdfdir = @pdfdir@ ++port_specific_symbol_files = @port_specific_symbol_files@ ++prefix = @prefix@ ++program_transform_name = @program_transform_name@ ++psdir = @psdir@ ++python_mod_dir = @python_mod_dir@ ++sbindir = @sbindir@ ++sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ ++sysconfdir = @sysconfdir@ ++target = @target@ ++target_alias = @target_alias@ ++target_cpu = @target_cpu@ ++target_os = @target_os@ ++target_vendor = @target_vendor@ ++thread_header = @thread_header@ ++tmake_file = @tmake_file@ ++top_build_prefix = @top_build_prefix@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ ++toplevel_builddir = @toplevel_builddir@ ++toplevel_srcdir = @toplevel_srcdir@ ++ ++# May be used by various substitution variables. ++gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER) ++MAINT_CHARSET = latin1 ++mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs ++PWD_COMMAND = $${PWDCMD-pwd} ++STAMP = echo timestamp > ++toolexecdir = $(glibcxx_toolexecdir) ++toolexeclibdir = $(glibcxx_toolexeclibdir) ++@ENABLE_WERROR_FALSE@WERROR_FLAG = ++@ENABLE_WERROR_TRUE@WERROR_FLAG = -Werror ++@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_TRUE@LDBL_128_FLAGS = $(LONG_DOUBLE_128_FLAGS) ++ ++# These bits are all figured out from configure. Look in acinclude.m4 ++# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS. ++CONFIG_CXXFLAGS = \ ++ $(SECTION_FLAGS) $(HWCAP_CFLAGS) -frandom-seed=$@ $(LDBL_128_FLAGS) ++ ++WARN_CXXFLAGS = \ ++ $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once ++ ++ ++# -I/-D flags to pass when compiling. ++AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS) ++ ++# Convenience library for C++20 runtime. ++noinst_LTLIBRARIES = libnonshared20convenience80.la \ ++ libnonshared20convenience110.la ++ ++headers = ++# XTEMPLATE_FLAGS = ++@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources80 = ++ ++# XTEMPLATE_FLAGS = -fno-implicit-templates ++@ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources80 = sstream-inst80.cc ++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 ++# 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++20 \ ++ $(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 $@ ++ ++all: all-am ++ ++.SUFFIXES: ++.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 \ ++ *$$dep*) \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps src/nonshared20/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --foreign --ignore-deps src/nonshared20/Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++$(top_srcdir)/fragment.am $(am__empty): ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++ ++clean-noinstLTLIBRARIES: ++ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) ++ @list='$(noinst_LTLIBRARIES)'; \ ++ locs=`for p in $$list; do echo $$p; done | \ ++ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ ++ sort -u`; \ ++ test -z "$$locs" || { \ ++ echo rm -f $${locs}; \ ++ rm -f $${locs}; \ ++ } ++ ++libnonshared20convenience110.la: $(libnonshared20convenience110_la_OBJECTS) $(libnonshared20convenience110_la_DEPENDENCIES) $(EXTRA_libnonshared20convenience110_la_DEPENDENCIES) ++ $(AM_V_CXXLD)$(CXXLINK) $(libnonshared20convenience110_la_OBJECTS) $(libnonshared20convenience110_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) ++ ++mostlyclean-compile: ++ -rm -f *.$(OBJEXT) ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++.cc.o: ++ $(AM_V_CXX)$(CXXCOMPILE) -c -o $@ $< ++ ++.cc.obj: ++ $(AM_V_CXX)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` ++ ++.cc.lo: ++ $(AM_V_CXX)$(LTCXXCOMPILE) -c -o $@ $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++ID: $(am__tagged_files) ++ $(am__define_uniq_tagged_files); mkid -fID $$unique ++tags: tags-am ++TAGS: tags ++ ++tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ set x; \ ++ here=`pwd`; \ ++ $(am__define_uniq_tagged_files); \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ ++ test -n "$$unique" || unique=$$empty_fix; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ ++ fi ++ctags: ctags-am ++ ++CTAGS: ctags ++ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ $(am__define_uniq_tagged_files); \ ++ test -z "$(CTAGS_ARGS)$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" ++cscopelist: cscopelist-am ++ ++cscopelist-am: $(am__tagged_files) ++ list='$(am__tagged_files)'; \ ++ case "$(srcdir)" in \ ++ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ ++ *) sdir=$(subdir)/$(srcdir) ;; \ ++ esac; \ ++ for i in $$list; do \ ++ if test -f "$$i"; then \ ++ echo "$(subdir)/$$i"; \ ++ else \ ++ echo "$$sdir/$$i"; \ ++ fi; \ ++ done >> $(top_builddir)/cscope.files ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++check-am: all-am ++check: check-am ++all-am: Makefile $(LTLIBRARIES) ++installdirs: ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ if test -z '$(STRIP)'; then \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ install; \ ++ else \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ ++ fi ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ ++ mostlyclean-am ++ ++distclean: distclean-am ++ -rm -f Makefile ++distclean-am: clean-am distclean-compile distclean-generic \ ++ distclean-tags ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: ++ ++.MAKE: install-am install-strip ++ ++.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ ++ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ ++ ctags-am distclean distclean-compile distclean-generic \ ++ distclean-libtool distclean-tags dvi dvi-am html html-am info \ ++ info-am install install-am install-data install-data-am \ ++ install-dvi install-dvi-am install-exec install-exec-am \ ++ install-html install-html-am install-info install-info-am \ ++ install-man install-pdf install-pdf-am install-ps \ ++ install-ps-am install-strip installcheck installcheck-am \ ++ installdirs maintainer-clean maintainer-clean-generic \ ++ mostlyclean mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ ++ uninstall-am ++ ++.PRECIOUS: Makefile ++ ++ ++vpath % $(top_srcdir)/src/nonshared20 ++ ++@USE_STATIC_TZDATA_TRUE@tzdata.zi.h: $(top_srcdir)/src/c++20/tzdata.zi ++@USE_STATIC_TZDATA_TRUE@ echo 'static const char tzdata_chars[] = R"__libstdcxx__(' > $@.tmp ++@USE_STATIC_TZDATA_TRUE@ cat $^ >> $@.tmp ++@USE_STATIC_TZDATA_TRUE@ echo ')__libstdcxx__";' >> $@.tmp ++@USE_STATIC_TZDATA_TRUE@ mv $@.tmp $@ ++ ++@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-inst80.cc b/libstdc++-v3/src/nonshared20/sstream-inst80.cc +new file mode 100644 +index 000000000..b0b8f19e5 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared20/sstream-inst80.cc +@@ -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 ++// 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" ++//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv"); ++//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(__powerpc__) && !defined(__powerpc64__) ++//asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEjjPKcj"); ++//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"); ++//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..4be193df7 +--- /dev/null ++++ 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 ++// 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 "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..dc123a2ae +--- /dev/null ++++ b/libstdc++-v3/src/nonshared20/tzdb80.cc +@@ -0,0 +1,127 @@ ++// Copyright The GNU Toolchain Authors. ++// ++// 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/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 _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_"); ++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 _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"); ++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"); ++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..0100d53e7 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared23/Makefile.am +@@ -0,0 +1,112 @@ ++## Makefile for the C++23 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 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++23 runtime. ++noinst_LTLIBRARIES = libnonshared23convenience80.la \ ++ libnonshared23convenience110.la ++ ++headers = ++ ++if ENABLE_EXTERN_TEMPLATE ++# XTEMPLATE_FLAGS = -fno-implicit-templates ++inst_sources = ++else ++# XTEMPLATE_FLAGS = ++inst_sources = ++endif ++ ++sources = stacktrace.cc print.cc ++ ++vpath % $(top_srcdir)/src/nonshared23 ++ ++libnonshared23convenience80_la_SOURCES = $(sources) $(inst_sources) ++libnonshared23convenience110_la_SOURCES = $(sources) $(inst_sources) ++ ++# 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 ++# 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++23 \ ++ $(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/nonshared23/Makefile.in b/libstdc++-v3/src/nonshared23/Makefile.in +new file mode 100644 +index 000000000..c8ffecaae +--- /dev/null ++++ b/libstdc++-v3/src/nonshared23/Makefile.in +@@ -0,0 +1,767 @@ ++# 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@ ++ ++VPATH = @srcdir@ ++am__is_gnu_make = { \ ++ if test -z '$(MAKELEVEL)'; then \ ++ false; \ ++ elif test -n '$(MAKE_HOST)'; then \ ++ true; \ ++ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ ++ true; \ ++ else \ ++ false; \ ++ fi; \ ++} ++am__make_running_with_option = \ ++ case $${target_option-} in \ ++ ?) ;; \ ++ *) echo "am__make_running_with_option: internal error: invalid" \ ++ "target option '$${target_option-}' specified" >&2; \ ++ exit 1;; \ ++ esac; \ ++ has_opt=no; \ ++ sane_makeflags=$$MAKEFLAGS; \ ++ if $(am__is_gnu_make); then \ ++ sane_makeflags=$$MFLAGS; \ ++ else \ ++ case $$MAKEFLAGS in \ ++ *\\[\ \ ]*) \ ++ bs=\\; \ ++ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ ++ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ ++ esac; \ ++ fi; \ ++ skip_next=no; \ ++ strip_trailopt () \ ++ { \ ++ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ ++ }; \ ++ for flg in $$sane_makeflags; do \ ++ test $$skip_next = yes && { skip_next=no; continue; }; \ ++ case $$flg in \ ++ *=*|--*) continue;; \ ++ -*I) strip_trailopt 'I'; skip_next=yes;; \ ++ -*I?*) strip_trailopt 'I';; \ ++ -*O) strip_trailopt 'O'; skip_next=yes;; \ ++ -*O?*) strip_trailopt 'O';; \ ++ -*l) strip_trailopt 'l'; skip_next=yes;; \ ++ -*l?*) strip_trailopt 'l';; \ ++ -[dEDm]) skip_next=yes;; \ ++ -[JT]) skip_next=yes;; \ ++ esac; \ ++ case $$flg in \ ++ *$$target_option*) has_opt=yes; break;; \ ++ esac; \ ++ done; \ ++ test $$has_opt = yes ++am__make_dryrun = (target_option=n; $(am__make_running_with_option)) ++am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = @build@ ++host_triplet = @host@ ++target_triplet = @target@ ++subdir = src/nonshared23 ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ ++ $(top_srcdir)/../config/enable.m4 \ ++ $(top_srcdir)/../config/futex.m4 \ ++ $(top_srcdir)/../config/hwcaps.m4 \ ++ $(top_srcdir)/../config/iconv.m4 \ ++ $(top_srcdir)/../config/lead-dot.m4 \ ++ $(top_srcdir)/../config/lib-ld.m4 \ ++ $(top_srcdir)/../config/lib-link.m4 \ ++ $(top_srcdir)/../config/lib-prefix.m4 \ ++ $(top_srcdir)/../config/lthostflags.m4 \ ++ $(top_srcdir)/../config/multi.m4 \ ++ $(top_srcdir)/../config/no-executables.m4 \ ++ $(top_srcdir)/../config/override.m4 \ ++ $(top_srcdir)/../config/toolexeclibdir.m4 \ ++ $(top_srcdir)/../config/unwind_ipinfo.m4 \ ++ $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \ ++ $(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \ ++ $(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/crossconfig.m4 \ ++ $(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \ ++ $(top_srcdir)/../config/gc++filt.m4 \ ++ $(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \ ++ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++DIST_COMMON = $(srcdir)/Makefile.am ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++LTLIBRARIES = $(noinst_LTLIBRARIES) ++libnonshared23convenience110_la_LIBADD = ++am__objects_1 = stacktrace.lo print.lo ++am__objects_2 = ++am_libnonshared23convenience110_la_OBJECTS = $(am__objects_1) \ ++ $(am__objects_2) ++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 = ++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 ++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_at = $(am__v_at_@AM_V@) ++am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) ++am__v_at_0 = @ ++am__v_at_1 = ++DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) ++depcomp = ++am__depfiles_maybe = ++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 = ++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 = $(libnonshared23convenience110_la_SOURCES) \ ++ $(libnonshared23convenience80_la_SOURCES) ++am__can_run_installinfo = \ ++ case $$AM_UPDATE_INFO_DIR in \ ++ n|no|NO) false;; \ ++ *) (install-info --version) >/dev/null 2>&1;; \ ++ esac ++am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) ++# Read a list of newline-separated strings from the standard input, ++# and print each of them once, without duplicates. Input order is ++# *not* preserved. ++am__uniquify_input = $(AWK) '\ ++ BEGIN { nonempty = 0; } \ ++ { items[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in items) print i; }; } \ ++' ++# Make sure the list of sources is unique. This is necessary because, ++# e.g., the same source file might be shared among _SOURCES variables ++# for different programs/libraries. ++am__define_uniq_tagged_files = \ ++ list='$(am__tagged_files)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | $(am__uniquify_input)` ++ETAGS = etags ++CTAGS = ctags ++ABI_TWEAKS_SRCDIR = @ABI_TWEAKS_SRCDIR@ ++ACLOCAL = @ACLOCAL@ ++ALLOCATOR_H = @ALLOCATOR_H@ ++ALLOCATOR_NAME = @ALLOCATOR_NAME@ ++ALLOC_FILE = @ALLOC_FILE@ ++AMTAR = @AMTAR@ ++AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ ++AR = @AR@ ++AS = @AS@ ++ATOMICITY_SRCDIR = @ATOMICITY_SRCDIR@ ++ATOMIC_FLAGS = @ATOMIC_FLAGS@ ++ATOMIC_WORD_SRCDIR = @ATOMIC_WORD_SRCDIR@ ++AUTOCONF = @AUTOCONF@ ++AUTOHEADER = @AUTOHEADER@ ++AUTOMAKE = @AUTOMAKE@ ++AWK = @AWK@ ++BACKTRACE_CPPFLAGS = @BACKTRACE_CPPFLAGS@ ++BACKTRACE_SUPPORTED = @BACKTRACE_SUPPORTED@ ++BACKTRACE_SUPPORTS_THREADS = @BACKTRACE_SUPPORTS_THREADS@ ++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@ ++CFLAGS = @CFLAGS@ ++CLOCALE_CC = @CLOCALE_CC@ ++CLOCALE_H = @CLOCALE_H@ ++CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@ ++CMESSAGES_CC = @CMESSAGES_CC@ ++CMESSAGES_H = @CMESSAGES_H@ ++CMONEY_CC = @CMONEY_CC@ ++CNUMERIC_CC = @CNUMERIC_CC@ ++CPP = @CPP@ ++CPPFLAGS = @CPPFLAGS@ ++CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@ ++CPU_OPT_BITS_RANDOM = @CPU_OPT_BITS_RANDOM@ ++CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@ ++CSTDIO_H = @CSTDIO_H@ ++CTIME_CC = @CTIME_CC@ ++CTIME_H = @CTIME_H@ ++CXX = @CXX@ ++CXXCPP = @CXXCPP@ ++CXXFILT = @CXXFILT@ ++CXXFLAGS = @CXXFLAGS@ ++CYGPATH_W = @CYGPATH_W@ ++C_INCLUDE_DIR = @C_INCLUDE_DIR@ ++DBLATEX = @DBLATEX@ ++DEBUG_FLAGS = @DEBUG_FLAGS@ ++DEFS = @DEFS@ ++DOT = @DOT@ ++DOXYGEN = @DOXYGEN@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ ++ECHO_C = @ECHO_C@ ++ECHO_N = @ECHO_N@ ++ECHO_T = @ECHO_T@ ++EGREP = @EGREP@ ++EH_POOL_FLAGS = @EH_POOL_FLAGS@ ++ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@ ++EXEEXT = @EXEEXT@ ++EXTRA_CFLAGS = @EXTRA_CFLAGS@ ++EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ ++FGREP = @FGREP@ ++FORMAT_FILE = @FORMAT_FILE@ ++FREESTANDING_FLAGS = @FREESTANDING_FLAGS@ ++GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@ ++GLIBCXX_LIBS = @GLIBCXX_LIBS@ ++GREP = @GREP@ ++HWCAP_CFLAGS = @HWCAP_CFLAGS@ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++LD = @LD@ ++LDFLAGS = @LDFLAGS@ ++LIBICONV = @LIBICONV@ ++LIBOBJS = @LIBOBJS@ ++LIBS = @LIBS@ ++LIBTOOL = @LIBTOOL@ ++LIPO = @LIPO@ ++LN_S = @LN_S@ ++LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ ++LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ ++LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@ ++LTLIBICONV = @LTLIBICONV@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAINT = @MAINT@ ++MAKEINFO = @MAKEINFO@ ++MKDIR_P = @MKDIR_P@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ ++OPT_LDFLAGS = @OPT_LDFLAGS@ ++OS_INC_SRCDIR = @OS_INC_SRCDIR@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ ++PACKAGE = @PACKAGE@ ++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ ++PACKAGE_NAME = @PACKAGE_NAME@ ++PACKAGE_STRING = @PACKAGE_STRING@ ++PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_URL = @PACKAGE_URL@ ++PACKAGE_VERSION = @PACKAGE_VERSION@ ++PATH_SEPARATOR = @PATH_SEPARATOR@ ++PDFLATEX = @PDFLATEX@ ++RANLIB = @RANLIB@ ++SECTION_FLAGS = @SECTION_FLAGS@ ++SECTION_LDFLAGS = @SECTION_LDFLAGS@ ++SED = @SED@ ++SET_MAKE = @SET_MAKE@ ++SHELL = @SHELL@ ++STRIP = @STRIP@ ++SYMVER_FILE = @SYMVER_FILE@ ++TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ ++USE_NLS = @USE_NLS@ ++VERSION = @VERSION@ ++VIEW_FILE = @VIEW_FILE@ ++VTV_CXXFLAGS = @VTV_CXXFLAGS@ ++VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@ ++VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@ ++WARN_FLAGS = @WARN_FLAGS@ ++XMLCATALOG = @XMLCATALOG@ ++XMLLINT = @XMLLINT@ ++XSLTPROC = @XSLTPROC@ ++XSL_STYLE_DIR = @XSL_STYLE_DIR@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_CC = @ac_ct_CC@ ++ac_ct_CXX = @ac_ct_CXX@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ++am__leading_dot = @am__leading_dot@ ++am__tar = @am__tar@ ++am__untar = @am__untar@ ++baseline_dir = @baseline_dir@ ++baseline_subdir_switch = @baseline_subdir_switch@ ++bindir = @bindir@ ++build = @build@ ++build_alias = @build_alias@ ++build_cpu = @build_cpu@ ++build_os = @build_os@ ++build_vendor = @build_vendor@ ++builddir = @builddir@ ++check_msgfmt = @check_msgfmt@ ++datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ ++enable_shared = @enable_shared@ ++enable_static = @enable_static@ ++exec_prefix = @exec_prefix@ ++get_gcc_base_ver = @get_gcc_base_ver@ ++glibcxx_MOFILES = @glibcxx_MOFILES@ ++glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@ ++glibcxx_POFILES = @glibcxx_POFILES@ ++glibcxx_builddir = @glibcxx_builddir@ ++glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@ ++glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@ ++glibcxx_cxx98_abi = @glibcxx_cxx98_abi@ ++glibcxx_localedir = @glibcxx_localedir@ ++glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@ ++glibcxx_prefixdir = @glibcxx_prefixdir@ ++glibcxx_srcdir = @glibcxx_srcdir@ ++glibcxx_toolexecdir = @glibcxx_toolexecdir@ ++glibcxx_toolexeclibdir = @glibcxx_toolexeclibdir@ ++gxx_include_dir = @gxx_include_dir@ ++host = @host@ ++host_alias = @host_alias@ ++host_cpu = @host_cpu@ ++host_os = @host_os@ ++host_vendor = @host_vendor@ ++htmldir = @htmldir@ ++includedir = @includedir@ ++infodir = @infodir@ ++install_sh = @install_sh@ ++libdir = @libdir@ ++libexecdir = @libexecdir@ ++libtool_VERSION = @libtool_VERSION@ ++localedir = @localedir@ ++localstatedir = @localstatedir@ ++lt_host_flags = @lt_host_flags@ ++mandir = @mandir@ ++mkdir_p = @mkdir_p@ ++multi_basedir = @multi_basedir@ ++oldincludedir = @oldincludedir@ ++pdfdir = @pdfdir@ ++port_specific_symbol_files = @port_specific_symbol_files@ ++prefix = @prefix@ ++program_transform_name = @program_transform_name@ ++psdir = @psdir@ ++python_mod_dir = @python_mod_dir@ ++sbindir = @sbindir@ ++sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ ++sysconfdir = @sysconfdir@ ++target = @target@ ++target_alias = @target_alias@ ++target_cpu = @target_cpu@ ++target_os = @target_os@ ++target_vendor = @target_vendor@ ++thread_header = @thread_header@ ++tmake_file = @tmake_file@ ++top_build_prefix = @top_build_prefix@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ ++toplevel_builddir = @toplevel_builddir@ ++toplevel_srcdir = @toplevel_srcdir@ ++ ++# May be used by various substitution variables. ++gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER) ++MAINT_CHARSET = latin1 ++mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs ++PWD_COMMAND = $${PWDCMD-pwd} ++STAMP = echo timestamp > ++toolexecdir = $(glibcxx_toolexecdir) ++toolexeclibdir = $(glibcxx_toolexeclibdir) ++@ENABLE_WERROR_FALSE@WERROR_FLAG = ++@ENABLE_WERROR_TRUE@WERROR_FLAG = -Werror ++@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_TRUE@LDBL_128_FLAGS = $(LONG_DOUBLE_128_FLAGS) ++ ++# These bits are all figured out from configure. Look in acinclude.m4 ++# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS. ++CONFIG_CXXFLAGS = \ ++ $(SECTION_FLAGS) $(HWCAP_CFLAGS) -frandom-seed=$@ $(LDBL_128_FLAGS) ++ ++WARN_CXXFLAGS = \ ++ $(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 = libnonshared23convenience80.la \ ++ libnonshared23convenience110.la ++ ++headers = ++# XTEMPLATE_FLAGS = ++@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources = ++ ++# XTEMPLATE_FLAGS = -fno-implicit-templates ++@ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources = ++sources = stacktrace.cc print.cc ++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 ++# 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++23 \ ++ $(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 $@ ++ ++all: all-am ++ ++.SUFFIXES: ++.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 \ ++ *$$dep*) \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps src/nonshared23/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --foreign --ignore-deps src/nonshared23/Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++$(top_srcdir)/fragment.am $(am__empty): ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++ ++clean-noinstLTLIBRARIES: ++ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) ++ @list='$(noinst_LTLIBRARIES)'; \ ++ locs=`for p in $$list; do echo $$p; done | \ ++ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ ++ sort -u`; \ ++ test -z "$$locs" || { \ ++ echo rm -f $${locs}; \ ++ rm -f $${locs}; \ ++ } ++ ++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) ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++.cc.o: ++ $(AM_V_CXX)$(CXXCOMPILE) -c -o $@ $< ++ ++.cc.obj: ++ $(AM_V_CXX)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` ++ ++.cc.lo: ++ $(AM_V_CXX)$(LTCXXCOMPILE) -c -o $@ $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++ID: $(am__tagged_files) ++ $(am__define_uniq_tagged_files); mkid -fID $$unique ++tags: tags-am ++TAGS: tags ++ ++tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ set x; \ ++ here=`pwd`; \ ++ $(am__define_uniq_tagged_files); \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ ++ test -n "$$unique" || unique=$$empty_fix; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ ++ fi ++ctags: ctags-am ++ ++CTAGS: ctags ++ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ $(am__define_uniq_tagged_files); \ ++ test -z "$(CTAGS_ARGS)$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" ++cscopelist: cscopelist-am ++ ++cscopelist-am: $(am__tagged_files) ++ list='$(am__tagged_files)'; \ ++ case "$(srcdir)" in \ ++ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ ++ *) sdir=$(subdir)/$(srcdir) ;; \ ++ esac; \ ++ for i in $$list; do \ ++ if test -f "$$i"; then \ ++ echo "$(subdir)/$$i"; \ ++ else \ ++ echo "$$sdir/$$i"; \ ++ fi; \ ++ done >> $(top_builddir)/cscope.files ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++check-am: all-am ++check: check-am ++all-am: Makefile $(LTLIBRARIES) ++installdirs: ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ if test -z '$(STRIP)'; then \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ install; \ ++ else \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ ++ fi ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ ++ mostlyclean-am ++ ++distclean: distclean-am ++ -rm -f Makefile ++distclean-am: clean-am distclean-compile distclean-generic \ ++ distclean-tags ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: ++ ++.MAKE: install-am install-strip ++ ++.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ ++ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ ++ ctags-am distclean distclean-compile distclean-generic \ ++ distclean-libtool distclean-tags dvi dvi-am html html-am info \ ++ info-am install install-am install-data install-data-am \ ++ install-dvi install-dvi-am install-exec install-exec-am \ ++ install-html install-html-am install-info install-info-am \ ++ install-man install-pdf install-pdf-am install-ps \ ++ install-ps-am install-strip installcheck installcheck-am \ ++ installdirs maintainer-clean maintainer-clean-generic \ ++ mostlyclean mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ ++ uninstall-am ++ ++.PRECIOUS: Makefile ++ ++ ++vpath % $(top_srcdir)/src/nonshared23 ++ ++# 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 $< ++ ++# 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/nonshared23/print.cc b/libstdc++-v3/src/nonshared23/print.cc +new file mode 100644 +index 000000000..16772258b +--- /dev/null ++++ b/libstdc++-v3/src/nonshared23/print.cc +@@ -0,0 +1,23 @@ ++// 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 ++// 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++23/print.cc" +diff --git a/libstdc++-v3/src/nonshared23/stacktrace.cc b/libstdc++-v3/src/nonshared23/stacktrace.cc +new file mode 100644 +index 000000000..a69fff54a +--- /dev/null ++++ b/libstdc++-v3/src/nonshared23/stacktrace.cc +@@ -0,0 +1,23 @@ ++// 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 ++// 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++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..2085fcbe6 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared26/Makefile.am +@@ -0,0 +1,106 @@ ++## Makefile for the C++26 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 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++26 runtime. ++noinst_LTLIBRARIES = libnonshared26convenience80.la \ ++ libnonshared26convenience110.la ++ ++headers = ++ ++if ENABLE_EXTERN_TEMPLATE ++# XTEMPLATE_FLAGS = -fno-implicit-templates ++inst_sources = ++else ++# XTEMPLATE_FLAGS = ++inst_sources = ++endif ++ ++sources = text_encoding.cc ++ ++vpath % $(top_srcdir)/src/nonshared26 ++ ++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 ++# 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++26 \ ++ $(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/nonshared26/Makefile.in b/libstdc++-v3/src/nonshared26/Makefile.in +new file mode 100644 +index 000000000..346c11683 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared26/Makefile.in +@@ -0,0 +1,761 @@ ++# 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@ ++ ++VPATH = @srcdir@ ++am__is_gnu_make = { \ ++ if test -z '$(MAKELEVEL)'; then \ ++ false; \ ++ elif test -n '$(MAKE_HOST)'; then \ ++ true; \ ++ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ ++ true; \ ++ else \ ++ false; \ ++ fi; \ ++} ++am__make_running_with_option = \ ++ case $${target_option-} in \ ++ ?) ;; \ ++ *) echo "am__make_running_with_option: internal error: invalid" \ ++ "target option '$${target_option-}' specified" >&2; \ ++ exit 1;; \ ++ esac; \ ++ has_opt=no; \ ++ sane_makeflags=$$MAKEFLAGS; \ ++ if $(am__is_gnu_make); then \ ++ sane_makeflags=$$MFLAGS; \ ++ else \ ++ case $$MAKEFLAGS in \ ++ *\\[\ \ ]*) \ ++ bs=\\; \ ++ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ ++ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ ++ esac; \ ++ fi; \ ++ skip_next=no; \ ++ strip_trailopt () \ ++ { \ ++ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ ++ }; \ ++ for flg in $$sane_makeflags; do \ ++ test $$skip_next = yes && { skip_next=no; continue; }; \ ++ case $$flg in \ ++ *=*|--*) continue;; \ ++ -*I) strip_trailopt 'I'; skip_next=yes;; \ ++ -*I?*) strip_trailopt 'I';; \ ++ -*O) strip_trailopt 'O'; skip_next=yes;; \ ++ -*O?*) strip_trailopt 'O';; \ ++ -*l) strip_trailopt 'l'; skip_next=yes;; \ ++ -*l?*) strip_trailopt 'l';; \ ++ -[dEDm]) skip_next=yes;; \ ++ -[JT]) skip_next=yes;; \ ++ esac; \ ++ case $$flg in \ ++ *$$target_option*) has_opt=yes; break;; \ ++ esac; \ ++ done; \ ++ test $$has_opt = yes ++am__make_dryrun = (target_option=n; $(am__make_running_with_option)) ++am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = @build@ ++host_triplet = @host@ ++target_triplet = @target@ ++subdir = src/nonshared26 ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ ++ $(top_srcdir)/../config/enable.m4 \ ++ $(top_srcdir)/../config/futex.m4 \ ++ $(top_srcdir)/../config/hwcaps.m4 \ ++ $(top_srcdir)/../config/iconv.m4 \ ++ $(top_srcdir)/../config/lead-dot.m4 \ ++ $(top_srcdir)/../config/lib-ld.m4 \ ++ $(top_srcdir)/../config/lib-link.m4 \ ++ $(top_srcdir)/../config/lib-prefix.m4 \ ++ $(top_srcdir)/../config/lthostflags.m4 \ ++ $(top_srcdir)/../config/multi.m4 \ ++ $(top_srcdir)/../config/no-executables.m4 \ ++ $(top_srcdir)/../config/override.m4 \ ++ $(top_srcdir)/../config/toolexeclibdir.m4 \ ++ $(top_srcdir)/../config/unwind_ipinfo.m4 \ ++ $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \ ++ $(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \ ++ $(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/crossconfig.m4 \ ++ $(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \ ++ $(top_srcdir)/../config/gc++filt.m4 \ ++ $(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \ ++ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++DIST_COMMON = $(srcdir)/Makefile.am ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++LTLIBRARIES = $(noinst_LTLIBRARIES) ++libnonshared26convenience110_la_LIBADD = ++am__objects_1 = text_encoding.lo ++am__objects_2 = ++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 = ++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 ++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_at = $(am__v_at_@AM_V@) ++am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) ++am__v_at_0 = @ ++am__v_at_1 = ++DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) ++depcomp = ++am__depfiles_maybe = ++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 = ++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 = $(libnonshared26convenience110_la_SOURCES) \ ++ $(libnonshared26convenience80_la_SOURCES) ++am__can_run_installinfo = \ ++ case $$AM_UPDATE_INFO_DIR in \ ++ n|no|NO) false;; \ ++ *) (install-info --version) >/dev/null 2>&1;; \ ++ esac ++am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) ++# Read a list of newline-separated strings from the standard input, ++# and print each of them once, without duplicates. Input order is ++# *not* preserved. ++am__uniquify_input = $(AWK) '\ ++ BEGIN { nonempty = 0; } \ ++ { items[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in items) print i; }; } \ ++' ++# Make sure the list of sources is unique. This is necessary because, ++# e.g., the same source file might be shared among _SOURCES variables ++# for different programs/libraries. ++am__define_uniq_tagged_files = \ ++ list='$(am__tagged_files)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | $(am__uniquify_input)` ++ETAGS = etags ++CTAGS = ctags ++ABI_TWEAKS_SRCDIR = @ABI_TWEAKS_SRCDIR@ ++ACLOCAL = @ACLOCAL@ ++ALLOCATOR_H = @ALLOCATOR_H@ ++ALLOCATOR_NAME = @ALLOCATOR_NAME@ ++ALLOC_FILE = @ALLOC_FILE@ ++AMTAR = @AMTAR@ ++AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ ++AR = @AR@ ++AS = @AS@ ++ATOMICITY_SRCDIR = @ATOMICITY_SRCDIR@ ++ATOMIC_FLAGS = @ATOMIC_FLAGS@ ++ATOMIC_WORD_SRCDIR = @ATOMIC_WORD_SRCDIR@ ++AUTOCONF = @AUTOCONF@ ++AUTOHEADER = @AUTOHEADER@ ++AUTOMAKE = @AUTOMAKE@ ++AWK = @AWK@ ++BACKTRACE_CPPFLAGS = @BACKTRACE_CPPFLAGS@ ++BACKTRACE_SUPPORTED = @BACKTRACE_SUPPORTED@ ++BACKTRACE_SUPPORTS_THREADS = @BACKTRACE_SUPPORTS_THREADS@ ++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@ ++CFLAGS = @CFLAGS@ ++CLOCALE_CC = @CLOCALE_CC@ ++CLOCALE_H = @CLOCALE_H@ ++CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@ ++CMESSAGES_CC = @CMESSAGES_CC@ ++CMESSAGES_H = @CMESSAGES_H@ ++CMONEY_CC = @CMONEY_CC@ ++CNUMERIC_CC = @CNUMERIC_CC@ ++CPP = @CPP@ ++CPPFLAGS = @CPPFLAGS@ ++CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@ ++CPU_OPT_BITS_RANDOM = @CPU_OPT_BITS_RANDOM@ ++CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@ ++CSTDIO_H = @CSTDIO_H@ ++CTIME_CC = @CTIME_CC@ ++CTIME_H = @CTIME_H@ ++CXX = @CXX@ ++CXXCPP = @CXXCPP@ ++CXXFILT = @CXXFILT@ ++CXXFLAGS = @CXXFLAGS@ ++CYGPATH_W = @CYGPATH_W@ ++C_INCLUDE_DIR = @C_INCLUDE_DIR@ ++DBLATEX = @DBLATEX@ ++DEBUG_FLAGS = @DEBUG_FLAGS@ ++DEFS = @DEFS@ ++DOT = @DOT@ ++DOXYGEN = @DOXYGEN@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ ++ECHO_C = @ECHO_C@ ++ECHO_N = @ECHO_N@ ++ECHO_T = @ECHO_T@ ++EGREP = @EGREP@ ++EH_POOL_FLAGS = @EH_POOL_FLAGS@ ++ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@ ++EXEEXT = @EXEEXT@ ++EXTRA_CFLAGS = @EXTRA_CFLAGS@ ++EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ ++FGREP = @FGREP@ ++FORMAT_FILE = @FORMAT_FILE@ ++FREESTANDING_FLAGS = @FREESTANDING_FLAGS@ ++GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@ ++GLIBCXX_LIBS = @GLIBCXX_LIBS@ ++GREP = @GREP@ ++HWCAP_CFLAGS = @HWCAP_CFLAGS@ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++LD = @LD@ ++LDFLAGS = @LDFLAGS@ ++LIBICONV = @LIBICONV@ ++LIBOBJS = @LIBOBJS@ ++LIBS = @LIBS@ ++LIBTOOL = @LIBTOOL@ ++LIPO = @LIPO@ ++LN_S = @LN_S@ ++LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ ++LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ ++LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@ ++LTLIBICONV = @LTLIBICONV@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAINT = @MAINT@ ++MAKEINFO = @MAKEINFO@ ++MKDIR_P = @MKDIR_P@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ ++OPT_LDFLAGS = @OPT_LDFLAGS@ ++OS_INC_SRCDIR = @OS_INC_SRCDIR@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ ++PACKAGE = @PACKAGE@ ++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ ++PACKAGE_NAME = @PACKAGE_NAME@ ++PACKAGE_STRING = @PACKAGE_STRING@ ++PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_URL = @PACKAGE_URL@ ++PACKAGE_VERSION = @PACKAGE_VERSION@ ++PATH_SEPARATOR = @PATH_SEPARATOR@ ++PDFLATEX = @PDFLATEX@ ++RANLIB = @RANLIB@ ++SECTION_FLAGS = @SECTION_FLAGS@ ++SECTION_LDFLAGS = @SECTION_LDFLAGS@ ++SED = @SED@ ++SET_MAKE = @SET_MAKE@ ++SHELL = @SHELL@ ++STRIP = @STRIP@ ++SYMVER_FILE = @SYMVER_FILE@ ++TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ ++USE_NLS = @USE_NLS@ ++VERSION = @VERSION@ ++VIEW_FILE = @VIEW_FILE@ ++VTV_CXXFLAGS = @VTV_CXXFLAGS@ ++VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@ ++VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@ ++WARN_FLAGS = @WARN_FLAGS@ ++XMLCATALOG = @XMLCATALOG@ ++XMLLINT = @XMLLINT@ ++XSLTPROC = @XSLTPROC@ ++XSL_STYLE_DIR = @XSL_STYLE_DIR@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_CC = @ac_ct_CC@ ++ac_ct_CXX = @ac_ct_CXX@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ++am__leading_dot = @am__leading_dot@ ++am__tar = @am__tar@ ++am__untar = @am__untar@ ++baseline_dir = @baseline_dir@ ++baseline_subdir_switch = @baseline_subdir_switch@ ++bindir = @bindir@ ++build = @build@ ++build_alias = @build_alias@ ++build_cpu = @build_cpu@ ++build_os = @build_os@ ++build_vendor = @build_vendor@ ++builddir = @builddir@ ++check_msgfmt = @check_msgfmt@ ++datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ ++enable_shared = @enable_shared@ ++enable_static = @enable_static@ ++exec_prefix = @exec_prefix@ ++get_gcc_base_ver = @get_gcc_base_ver@ ++glibcxx_MOFILES = @glibcxx_MOFILES@ ++glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@ ++glibcxx_POFILES = @glibcxx_POFILES@ ++glibcxx_builddir = @glibcxx_builddir@ ++glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@ ++glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@ ++glibcxx_cxx98_abi = @glibcxx_cxx98_abi@ ++glibcxx_localedir = @glibcxx_localedir@ ++glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@ ++glibcxx_prefixdir = @glibcxx_prefixdir@ ++glibcxx_srcdir = @glibcxx_srcdir@ ++glibcxx_toolexecdir = @glibcxx_toolexecdir@ ++glibcxx_toolexeclibdir = @glibcxx_toolexeclibdir@ ++gxx_include_dir = @gxx_include_dir@ ++host = @host@ ++host_alias = @host_alias@ ++host_cpu = @host_cpu@ ++host_os = @host_os@ ++host_vendor = @host_vendor@ ++htmldir = @htmldir@ ++includedir = @includedir@ ++infodir = @infodir@ ++install_sh = @install_sh@ ++libdir = @libdir@ ++libexecdir = @libexecdir@ ++libtool_VERSION = @libtool_VERSION@ ++localedir = @localedir@ ++localstatedir = @localstatedir@ ++lt_host_flags = @lt_host_flags@ ++mandir = @mandir@ ++mkdir_p = @mkdir_p@ ++multi_basedir = @multi_basedir@ ++oldincludedir = @oldincludedir@ ++pdfdir = @pdfdir@ ++port_specific_symbol_files = @port_specific_symbol_files@ ++prefix = @prefix@ ++program_transform_name = @program_transform_name@ ++psdir = @psdir@ ++python_mod_dir = @python_mod_dir@ ++sbindir = @sbindir@ ++sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ ++sysconfdir = @sysconfdir@ ++target = @target@ ++target_alias = @target_alias@ ++target_cpu = @target_cpu@ ++target_os = @target_os@ ++target_vendor = @target_vendor@ ++thread_header = @thread_header@ ++tmake_file = @tmake_file@ ++top_build_prefix = @top_build_prefix@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ ++toplevel_builddir = @toplevel_builddir@ ++toplevel_srcdir = @toplevel_srcdir@ ++ ++# May be used by various substitution variables. ++gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER) ++MAINT_CHARSET = latin1 ++mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs ++PWD_COMMAND = $${PWDCMD-pwd} ++STAMP = echo timestamp > ++toolexecdir = $(glibcxx_toolexecdir) ++toolexeclibdir = $(glibcxx_toolexeclibdir) ++@ENABLE_WERROR_FALSE@WERROR_FLAG = ++@ENABLE_WERROR_TRUE@WERROR_FLAG = -Werror ++@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_TRUE@LDBL_128_FLAGS = $(LONG_DOUBLE_128_FLAGS) ++ ++# These bits are all figured out from configure. Look in acinclude.m4 ++# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS. ++CONFIG_CXXFLAGS = \ ++ $(SECTION_FLAGS) $(HWCAP_CFLAGS) -frandom-seed=$@ $(LDBL_128_FLAGS) ++ ++WARN_CXXFLAGS = \ ++ $(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 = libnonshared26convenience80.la \ ++ libnonshared26convenience110.la ++ ++headers = ++# XTEMPLATE_FLAGS = ++@ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources = ++ ++# XTEMPLATE_FLAGS = -fno-implicit-templates ++@ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources = ++sources = text_encoding.cc ++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 ++# 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++26 \ ++ $(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 $@ ++ ++all: all-am ++ ++.SUFFIXES: ++.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 \ ++ *$$dep*) \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps src/nonshared26/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --foreign --ignore-deps src/nonshared26/Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++$(top_srcdir)/fragment.am $(am__empty): ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++ ++clean-noinstLTLIBRARIES: ++ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) ++ @list='$(noinst_LTLIBRARIES)'; \ ++ locs=`for p in $$list; do echo $$p; done | \ ++ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ ++ sort -u`; \ ++ test -z "$$locs" || { \ ++ echo rm -f $${locs}; \ ++ rm -f $${locs}; \ ++ } ++ ++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) ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++.cc.o: ++ $(AM_V_CXX)$(CXXCOMPILE) -c -o $@ $< ++ ++.cc.obj: ++ $(AM_V_CXX)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` ++ ++.cc.lo: ++ $(AM_V_CXX)$(LTCXXCOMPILE) -c -o $@ $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++ID: $(am__tagged_files) ++ $(am__define_uniq_tagged_files); mkid -fID $$unique ++tags: tags-am ++TAGS: tags ++ ++tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ set x; \ ++ here=`pwd`; \ ++ $(am__define_uniq_tagged_files); \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ ++ test -n "$$unique" || unique=$$empty_fix; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ ++ fi ++ctags: ctags-am ++ ++CTAGS: ctags ++ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ $(am__define_uniq_tagged_files); \ ++ test -z "$(CTAGS_ARGS)$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" ++cscopelist: cscopelist-am ++ ++cscopelist-am: $(am__tagged_files) ++ list='$(am__tagged_files)'; \ ++ case "$(srcdir)" in \ ++ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ ++ *) sdir=$(subdir)/$(srcdir) ;; \ ++ esac; \ ++ for i in $$list; do \ ++ if test -f "$$i"; then \ ++ echo "$(subdir)/$$i"; \ ++ else \ ++ echo "$$sdir/$$i"; \ ++ fi; \ ++ done >> $(top_builddir)/cscope.files ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++check-am: all-am ++check: check-am ++all-am: Makefile $(LTLIBRARIES) ++installdirs: ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ if test -z '$(STRIP)'; then \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ install; \ ++ else \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ ++ fi ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ ++ mostlyclean-am ++ ++distclean: distclean-am ++ -rm -f Makefile ++distclean-am: clean-am distclean-compile distclean-generic \ ++ distclean-tags ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: ++ ++.MAKE: install-am install-strip ++ ++.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ ++ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ ++ ctags-am distclean distclean-compile distclean-generic \ ++ distclean-libtool distclean-tags dvi dvi-am html html-am info \ ++ info-am install install-am install-data install-data-am \ ++ install-dvi install-dvi-am install-exec install-exec-am \ ++ install-html install-html-am install-info install-info-am \ ++ install-man install-pdf install-pdf-am install-ps \ ++ install-ps-am install-strip installcheck installcheck-am \ ++ installdirs maintainer-clean maintainer-clean-generic \ ++ mostlyclean mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ ++ uninstall-am ++ ++.PRECIOUS: Makefile ++ ++ ++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. ++.NOEXPORT: +diff --git a/libstdc++-v3/src/nonshared26/text_encoding.cc b/libstdc++-v3/src/nonshared26/text_encoding.cc +new file mode 100644 +index 000000000..bdda684a1 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared26/text_encoding.cc +@@ -0,0 +1,23 @@ ++// 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 ++// 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++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..3d9bcdf28 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared98/Makefile.am +@@ -0,0 +1,102 @@ ++## Makefile for the C++03 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 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++98 runtime. ++noinst_LTLIBRARIES = libnonshared98convenience80.la \ ++ libnonshared98convenience110.la ++ ++headers = ++ ++# Source files linked in via configuration/make substitution for a ++# particular host, but with ad hoc naming rules. ++host_sources_extra = \ ++ basic_file.cc c++locale.cc \ ++ ${ldbl_compat_sources} ${parallel_sources} ++ ++# Sources present in the src directory, always present. ++sources = \ ++ extfloat.S \ ++ ios_init.cc \ ++ locale_facets.cc ++sources80 = \ ++ char8_t-rtti.S \ ++ ios_failure.cc ++sources110 = ++ ++vpath % $(top_srcdir)/src/nonshared98 ++vpath % $(top_srcdir) ++ ++libnonshared98convenience80_la_SOURCES = $(sources) $(sources80) ++libnonshared98convenience110_la_SOURCES = $(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 ++# 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++98 \ ++ $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \ ++ $(XTEMPLATE_FLAGS) $(VTV_CXXFLAGS) \ ++ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) ++ ++AM_MAKEFLAGS = \ ++ "gxx_include_dir=$(gxx_include_dir)" ++ ++# Libtool notes ++ ++# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is ++# last. (That way, things like -O2 passed down from the toplevel can ++# be overridden by --enable-debug.) ++ ++# 2) 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. ++# We have to put --tag disable-shared after --tag CXX lest things ++# CXX undo the affect of disable-shared. ++LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(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 $(LIBTOOLFLAGS) \ ++ --mode=link $(CXX) \ ++ $(VTV_CXXLINKFLAGS) \ ++ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ +diff --git a/libstdc++-v3/src/nonshared98/Makefile.in b/libstdc++-v3/src/nonshared98/Makefile.in +new file mode 100644 +index 000000000..df98a485a +--- /dev/null ++++ b/libstdc++-v3/src/nonshared98/Makefile.in +@@ -0,0 +1,802 @@ ++# 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@ ++ ++VPATH = @srcdir@ ++am__is_gnu_make = { \ ++ if test -z '$(MAKELEVEL)'; then \ ++ false; \ ++ elif test -n '$(MAKE_HOST)'; then \ ++ true; \ ++ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ ++ true; \ ++ else \ ++ false; \ ++ fi; \ ++} ++am__make_running_with_option = \ ++ case $${target_option-} in \ ++ ?) ;; \ ++ *) echo "am__make_running_with_option: internal error: invalid" \ ++ "target option '$${target_option-}' specified" >&2; \ ++ exit 1;; \ ++ esac; \ ++ has_opt=no; \ ++ sane_makeflags=$$MAKEFLAGS; \ ++ if $(am__is_gnu_make); then \ ++ sane_makeflags=$$MFLAGS; \ ++ else \ ++ case $$MAKEFLAGS in \ ++ *\\[\ \ ]*) \ ++ bs=\\; \ ++ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ ++ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ ++ esac; \ ++ fi; \ ++ skip_next=no; \ ++ strip_trailopt () \ ++ { \ ++ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ ++ }; \ ++ for flg in $$sane_makeflags; do \ ++ test $$skip_next = yes && { skip_next=no; continue; }; \ ++ case $$flg in \ ++ *=*|--*) continue;; \ ++ -*I) strip_trailopt 'I'; skip_next=yes;; \ ++ -*I?*) strip_trailopt 'I';; \ ++ -*O) strip_trailopt 'O'; skip_next=yes;; \ ++ -*O?*) strip_trailopt 'O';; \ ++ -*l) strip_trailopt 'l'; skip_next=yes;; \ ++ -*l?*) strip_trailopt 'l';; \ ++ -[dEDm]) skip_next=yes;; \ ++ -[JT]) skip_next=yes;; \ ++ esac; \ ++ case $$flg in \ ++ *$$target_option*) has_opt=yes; break;; \ ++ esac; \ ++ done; \ ++ test $$has_opt = yes ++am__make_dryrun = (target_option=n; $(am__make_running_with_option)) ++am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = @build@ ++host_triplet = @host@ ++target_triplet = @target@ ++subdir = src/nonshared98 ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ ++ $(top_srcdir)/../config/enable.m4 \ ++ $(top_srcdir)/../config/futex.m4 \ ++ $(top_srcdir)/../config/hwcaps.m4 \ ++ $(top_srcdir)/../config/iconv.m4 \ ++ $(top_srcdir)/../config/lead-dot.m4 \ ++ $(top_srcdir)/../config/lib-ld.m4 \ ++ $(top_srcdir)/../config/lib-link.m4 \ ++ $(top_srcdir)/../config/lib-prefix.m4 \ ++ $(top_srcdir)/../config/lthostflags.m4 \ ++ $(top_srcdir)/../config/multi.m4 \ ++ $(top_srcdir)/../config/no-executables.m4 \ ++ $(top_srcdir)/../config/override.m4 \ ++ $(top_srcdir)/../config/toolexeclibdir.m4 \ ++ $(top_srcdir)/../config/unwind_ipinfo.m4 \ ++ $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \ ++ $(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \ ++ $(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/crossconfig.m4 \ ++ $(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \ ++ $(top_srcdir)/../config/gc++filt.m4 \ ++ $(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \ ++ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++DIST_COMMON = $(srcdir)/Makefile.am ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++LTLIBRARIES = $(noinst_LTLIBRARIES) ++libnonshared98convenience110_la_LIBADD = ++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 = \ ++ $(am_libnonshared98convenience110_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 = ++libnonshared98convenience80_la_LIBADD = ++am__objects_3 = char8_t-rtti.lo ios_failure.lo ++am_libnonshared98convenience80_la_OBJECTS = $(am__objects_1) \ ++ $(am__objects_3) ++libnonshared98convenience80_la_OBJECTS = \ ++ $(am_libnonshared98convenience80_la_OBJECTS) ++AM_V_P = $(am__v_P_@AM_V@) ++am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) ++am__v_P_0 = false ++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_at = $(am__v_at_@AM_V@) ++am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) ++am__v_at_0 = @ ++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 = ++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 = ++SOURCES = $(libnonshared98convenience110_la_SOURCES) \ ++ $(libnonshared98convenience80_la_SOURCES) ++am__can_run_installinfo = \ ++ case $$AM_UPDATE_INFO_DIR in \ ++ n|no|NO) false;; \ ++ *) (install-info --version) >/dev/null 2>&1;; \ ++ esac ++am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) ++# Read a list of newline-separated strings from the standard input, ++# and print each of them once, without duplicates. Input order is ++# *not* preserved. ++am__uniquify_input = $(AWK) '\ ++ BEGIN { nonempty = 0; } \ ++ { items[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in items) print i; }; } \ ++' ++# Make sure the list of sources is unique. This is necessary because, ++# e.g., the same source file might be shared among _SOURCES variables ++# for different programs/libraries. ++am__define_uniq_tagged_files = \ ++ list='$(am__tagged_files)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | $(am__uniquify_input)` ++ETAGS = etags ++CTAGS = ctags ++ABI_TWEAKS_SRCDIR = @ABI_TWEAKS_SRCDIR@ ++ACLOCAL = @ACLOCAL@ ++ALLOCATOR_H = @ALLOCATOR_H@ ++ALLOCATOR_NAME = @ALLOCATOR_NAME@ ++ALLOC_FILE = @ALLOC_FILE@ ++AMTAR = @AMTAR@ ++AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ ++AR = @AR@ ++AS = @AS@ ++ATOMICITY_SRCDIR = @ATOMICITY_SRCDIR@ ++ATOMIC_FLAGS = @ATOMIC_FLAGS@ ++ATOMIC_WORD_SRCDIR = @ATOMIC_WORD_SRCDIR@ ++AUTOCONF = @AUTOCONF@ ++AUTOHEADER = @AUTOHEADER@ ++AUTOMAKE = @AUTOMAKE@ ++AWK = @AWK@ ++BACKTRACE_CPPFLAGS = @BACKTRACE_CPPFLAGS@ ++BACKTRACE_SUPPORTED = @BACKTRACE_SUPPORTED@ ++BACKTRACE_SUPPORTS_THREADS = @BACKTRACE_SUPPORTS_THREADS@ ++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@ ++CFLAGS = @CFLAGS@ ++CLOCALE_CC = @CLOCALE_CC@ ++CLOCALE_H = @CLOCALE_H@ ++CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@ ++CMESSAGES_CC = @CMESSAGES_CC@ ++CMESSAGES_H = @CMESSAGES_H@ ++CMONEY_CC = @CMONEY_CC@ ++CNUMERIC_CC = @CNUMERIC_CC@ ++CPP = @CPP@ ++CPPFLAGS = @CPPFLAGS@ ++CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@ ++CPU_OPT_BITS_RANDOM = @CPU_OPT_BITS_RANDOM@ ++CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@ ++CSTDIO_H = @CSTDIO_H@ ++CTIME_CC = @CTIME_CC@ ++CTIME_H = @CTIME_H@ ++CXX = @CXX@ ++CXXCPP = @CXXCPP@ ++CXXFILT = @CXXFILT@ ++CXXFLAGS = @CXXFLAGS@ ++CYGPATH_W = @CYGPATH_W@ ++C_INCLUDE_DIR = @C_INCLUDE_DIR@ ++DBLATEX = @DBLATEX@ ++DEBUG_FLAGS = @DEBUG_FLAGS@ ++DEFS = @DEFS@ ++DOT = @DOT@ ++DOXYGEN = @DOXYGEN@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ ++ECHO_C = @ECHO_C@ ++ECHO_N = @ECHO_N@ ++ECHO_T = @ECHO_T@ ++EGREP = @EGREP@ ++EH_POOL_FLAGS = @EH_POOL_FLAGS@ ++ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@ ++EXEEXT = @EXEEXT@ ++EXTRA_CFLAGS = @EXTRA_CFLAGS@ ++EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ ++FGREP = @FGREP@ ++FORMAT_FILE = @FORMAT_FILE@ ++FREESTANDING_FLAGS = @FREESTANDING_FLAGS@ ++GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@ ++GLIBCXX_LIBS = @GLIBCXX_LIBS@ ++GREP = @GREP@ ++HWCAP_CFLAGS = @HWCAP_CFLAGS@ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++LD = @LD@ ++LDFLAGS = @LDFLAGS@ ++LIBICONV = @LIBICONV@ ++LIBOBJS = @LIBOBJS@ ++LIBS = @LIBS@ ++LIBTOOL = @LIBTOOL@ ++LIPO = @LIPO@ ++LN_S = @LN_S@ ++LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ ++LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ ++LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@ ++LTLIBICONV = @LTLIBICONV@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAINT = @MAINT@ ++MAKEINFO = @MAKEINFO@ ++MKDIR_P = @MKDIR_P@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ ++OPT_LDFLAGS = @OPT_LDFLAGS@ ++OS_INC_SRCDIR = @OS_INC_SRCDIR@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ ++PACKAGE = @PACKAGE@ ++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ ++PACKAGE_NAME = @PACKAGE_NAME@ ++PACKAGE_STRING = @PACKAGE_STRING@ ++PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_URL = @PACKAGE_URL@ ++PACKAGE_VERSION = @PACKAGE_VERSION@ ++PATH_SEPARATOR = @PATH_SEPARATOR@ ++PDFLATEX = @PDFLATEX@ ++RANLIB = @RANLIB@ ++SECTION_FLAGS = @SECTION_FLAGS@ ++SECTION_LDFLAGS = @SECTION_LDFLAGS@ ++SED = @SED@ ++SET_MAKE = @SET_MAKE@ ++SHELL = @SHELL@ ++STRIP = @STRIP@ ++SYMVER_FILE = @SYMVER_FILE@ ++TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ ++USE_NLS = @USE_NLS@ ++VERSION = @VERSION@ ++VIEW_FILE = @VIEW_FILE@ ++VTV_CXXFLAGS = @VTV_CXXFLAGS@ ++VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@ ++VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@ ++WARN_FLAGS = @WARN_FLAGS@ ++XMLCATALOG = @XMLCATALOG@ ++XMLLINT = @XMLLINT@ ++XSLTPROC = @XSLTPROC@ ++XSL_STYLE_DIR = @XSL_STYLE_DIR@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_CC = @ac_ct_CC@ ++ac_ct_CXX = @ac_ct_CXX@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ++am__leading_dot = @am__leading_dot@ ++am__tar = @am__tar@ ++am__untar = @am__untar@ ++baseline_dir = @baseline_dir@ ++baseline_subdir_switch = @baseline_subdir_switch@ ++bindir = @bindir@ ++build = @build@ ++build_alias = @build_alias@ ++build_cpu = @build_cpu@ ++build_os = @build_os@ ++build_vendor = @build_vendor@ ++builddir = @builddir@ ++check_msgfmt = @check_msgfmt@ ++datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ ++enable_shared = @enable_shared@ ++enable_static = @enable_static@ ++exec_prefix = @exec_prefix@ ++get_gcc_base_ver = @get_gcc_base_ver@ ++glibcxx_MOFILES = @glibcxx_MOFILES@ ++glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@ ++glibcxx_POFILES = @glibcxx_POFILES@ ++glibcxx_builddir = @glibcxx_builddir@ ++glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@ ++glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@ ++glibcxx_cxx98_abi = @glibcxx_cxx98_abi@ ++glibcxx_localedir = @glibcxx_localedir@ ++glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@ ++glibcxx_prefixdir = @glibcxx_prefixdir@ ++glibcxx_srcdir = @glibcxx_srcdir@ ++glibcxx_toolexecdir = @glibcxx_toolexecdir@ ++glibcxx_toolexeclibdir = @glibcxx_toolexeclibdir@ ++gxx_include_dir = @gxx_include_dir@ ++host = @host@ ++host_alias = @host_alias@ ++host_cpu = @host_cpu@ ++host_os = @host_os@ ++host_vendor = @host_vendor@ ++htmldir = @htmldir@ ++includedir = @includedir@ ++infodir = @infodir@ ++install_sh = @install_sh@ ++libdir = @libdir@ ++libexecdir = @libexecdir@ ++libtool_VERSION = @libtool_VERSION@ ++localedir = @localedir@ ++localstatedir = @localstatedir@ ++lt_host_flags = @lt_host_flags@ ++mandir = @mandir@ ++mkdir_p = @mkdir_p@ ++multi_basedir = @multi_basedir@ ++oldincludedir = @oldincludedir@ ++pdfdir = @pdfdir@ ++port_specific_symbol_files = @port_specific_symbol_files@ ++prefix = @prefix@ ++program_transform_name = @program_transform_name@ ++psdir = @psdir@ ++python_mod_dir = @python_mod_dir@ ++sbindir = @sbindir@ ++sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ ++sysconfdir = @sysconfdir@ ++target = @target@ ++target_alias = @target_alias@ ++target_cpu = @target_cpu@ ++target_os = @target_os@ ++target_vendor = @target_vendor@ ++thread_header = @thread_header@ ++tmake_file = @tmake_file@ ++top_build_prefix = @top_build_prefix@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ ++toplevel_builddir = @toplevel_builddir@ ++toplevel_srcdir = @toplevel_srcdir@ ++ ++# May be used by various substitution variables. ++gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER) ++MAINT_CHARSET = latin1 ++mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs ++PWD_COMMAND = $${PWDCMD-pwd} ++STAMP = echo timestamp > ++toolexecdir = $(glibcxx_toolexecdir) ++toolexeclibdir = $(glibcxx_toolexeclibdir) ++@ENABLE_WERROR_FALSE@WERROR_FLAG = ++@ENABLE_WERROR_TRUE@WERROR_FLAG = -Werror ++@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_TRUE@LDBL_128_FLAGS = $(LONG_DOUBLE_128_FLAGS) ++ ++# These bits are all figured out from configure. Look in acinclude.m4 ++# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS. ++CONFIG_CXXFLAGS = \ ++ $(SECTION_FLAGS) $(HWCAP_CFLAGS) -frandom-seed=$@ $(LDBL_128_FLAGS) ++ ++WARN_CXXFLAGS = \ ++ $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once ++ ++ ++# -I/-D flags to pass when compiling. ++AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS) ++ ++# Convenience library for C++98 runtime. ++noinst_LTLIBRARIES = libnonshared98convenience80.la \ ++ libnonshared98convenience110.la ++ ++headers = ++ ++# Source files linked in via configuration/make substitution for a ++# particular host, but with ad hoc naming rules. ++host_sources_extra = \ ++ basic_file.cc c++locale.cc \ ++ ${ldbl_compat_sources} ${parallel_sources} ++ ++ ++# Sources present in the src directory, always present. ++sources = \ ++ extfloat.S \ ++ ios_init.cc \ ++ locale_facets.cc ++ ++sources80 = \ ++ char8_t-rtti.S \ ++ ios_failure.cc ++ ++sources110 = ++libnonshared98convenience80_la_SOURCES = $(sources) $(sources80) ++libnonshared98convenience110_la_SOURCES = $(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 ++# 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++98 \ ++ $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \ ++ $(XTEMPLATE_FLAGS) $(VTV_CXXFLAGS) \ ++ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) ++ ++AM_MAKEFLAGS = \ ++ "gxx_include_dir=$(gxx_include_dir)" ++ ++ ++# Libtool notes ++ ++# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is ++# last. (That way, things like -O2 passed down from the toplevel can ++# be overridden by --enable-debug.) ++ ++# 2) 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. ++# We have to put --tag disable-shared after --tag CXX lest things ++# CXX undo the affect of disable-shared. ++LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(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 $(LIBTOOLFLAGS) \ ++ --mode=link $(CXX) \ ++ $(VTV_CXXLINKFLAGS) \ ++ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ ++ ++all: all-am ++ ++.SUFFIXES: ++.SUFFIXES: .S .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 \ ++ *$$dep*) \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps src/nonshared98/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --foreign --ignore-deps src/nonshared98/Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++$(top_srcdir)/fragment.am $(am__empty): ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++ ++clean-noinstLTLIBRARIES: ++ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) ++ @list='$(noinst_LTLIBRARIES)'; \ ++ locs=`for p in $$list; do echo $$p; done | \ ++ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ ++ sort -u`; \ ++ test -z "$$locs" || { \ ++ echo rm -f $${locs}; \ ++ rm -f $${locs}; \ ++ } ++ ++libnonshared98convenience110.la: $(libnonshared98convenience110_la_OBJECTS) $(libnonshared98convenience110_la_DEPENDENCIES) $(EXTRA_libnonshared98convenience110_la_DEPENDENCIES) ++ $(AM_V_CXXLD)$(CXXLINK) $(libnonshared98convenience110_la_OBJECTS) $(libnonshared98convenience110_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) ++ ++mostlyclean-compile: ++ -rm -f *.$(OBJEXT) ++ ++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 $@ $< ++ ++.cc.obj: ++ $(AM_V_CXX)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` ++ ++.cc.lo: ++ $(AM_V_CXX)$(LTCXXCOMPILE) -c -o $@ $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++ID: $(am__tagged_files) ++ $(am__define_uniq_tagged_files); mkid -fID $$unique ++tags: tags-am ++TAGS: tags ++ ++tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ set x; \ ++ here=`pwd`; \ ++ $(am__define_uniq_tagged_files); \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ ++ test -n "$$unique" || unique=$$empty_fix; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ ++ fi ++ctags: ctags-am ++ ++CTAGS: ctags ++ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) ++ $(am__define_uniq_tagged_files); \ ++ test -z "$(CTAGS_ARGS)$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" ++cscopelist: cscopelist-am ++ ++cscopelist-am: $(am__tagged_files) ++ list='$(am__tagged_files)'; \ ++ case "$(srcdir)" in \ ++ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ ++ *) sdir=$(subdir)/$(srcdir) ;; \ ++ esac; \ ++ for i in $$list; do \ ++ if test -f "$$i"; then \ ++ echo "$(subdir)/$$i"; \ ++ else \ ++ echo "$$sdir/$$i"; \ ++ fi; \ ++ done >> $(top_builddir)/cscope.files ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++check-am: all-am ++check: check-am ++all-am: Makefile $(LTLIBRARIES) ++installdirs: ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ if test -z '$(STRIP)'; then \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ install; \ ++ else \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ ++ fi ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ ++ mostlyclean-am ++ ++distclean: distclean-am ++ -rm -f Makefile ++distclean-am: clean-am distclean-compile distclean-generic \ ++ distclean-tags ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: ++ ++.MAKE: install-am install-strip ++ ++.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ ++ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ ++ ctags-am distclean distclean-compile distclean-generic \ ++ distclean-libtool distclean-tags dvi dvi-am html html-am info \ ++ info-am install install-am install-data install-data-am \ ++ install-dvi install-dvi-am install-exec install-exec-am \ ++ install-html install-html-am install-info install-info-am \ ++ install-man install-pdf install-pdf-am install-ps \ ++ install-ps-am install-strip installcheck installcheck-am \ ++ installdirs maintainer-clean maintainer-clean-generic \ ++ mostlyclean mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ ++ uninstall-am ++ ++.PRECIOUS: Makefile ++ ++ ++vpath % $(top_srcdir)/src/nonshared98 ++vpath % $(top_srcdir) ++ ++# 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/char8_t-rtti.S b/libstdc++-v3/src/nonshared98/char8_t-rtti.S +new file mode 100644 +index 000000000..b44e53f2b +--- /dev/null ++++ b/libstdc++-v3/src/nonshared98/char8_t-rtti.S +@@ -0,0 +1,166 @@ ++/* 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 ++ 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(_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..c6270e618 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared98/extfloat.S +@@ -0,0 +1,547 @@ ++/* 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 ++ 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 ++#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 ++ ++#if defined __x86_64__ || defined __i386__ || defined __aarch64__ ++ .weak SYM(_ZTIPKDF16_) ++ SECTION1(_ZTIPKDF16_) ++ ALIGN1 ++ .type SYM(_ZTIPKDF16_), OBJECT ++ .size SYM(_ZTIPKDF16_), SIZE1 ++_ZTIPKDF16_: ++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF ++ POINTER SYM(_ZTSPKDF16_) ++ FLAGS 1 ++ PAD ++ POINTER SYM(_ZTIDF16_) ++ .weak SYM(_ZTIPDF16_) ++ SECTION1(_ZTIPDF16_) ++ ALIGN1 ++ .type SYM(_ZTIPDF16_), OBJECT ++ .size SYM(_ZTIPDF16_), SIZE1 ++_ZTIPDF16_: ++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF ++ POINTER SYM(_ZTSPDF16_) ++ FLAGS 0 ++ PAD ++ POINTER SYM(_ZTIDF16_) ++ .weak SYM(_ZTIDF16_) ++ SECTION2(_ZTIDF16_) ++ ALIGN2 ++ .type SYM(_ZTIDF16_), OBJECT ++ .size SYM(_ZTIDF16_), SIZE2 ++_ZTIDF16_: ++ POINTER SYM(_ZTVN10__cxxabiv123__fundamental_type_infoE)+OFF ++ POINTER SYM(_ZTSDF16_) ++ .weak SYM(_ZTSPKDF16_) ++ .hidden SYM(_ZTSPKDF16_) ++ SECTION3(_ZTSPKDF16_) ++ ALIGN3 ++ .type SYM(_ZTSPKDF16_), OBJECT ++ .size SYM(_ZTSPKDF16_), 8 ++_ZTSPKDF16_: ++ STRING "PKDF16_" ++ .weak SYM(_ZTSPDF16_) ++ .hidden SYM(_ZTSPDF16_) ++ SECTION3(_ZTSPDF16_) ++ ALIGN3 ++ .type SYM(_ZTSPDF16_), OBJECT ++ .size SYM(_ZTSPDF16_), 7 ++_ZTSPDF16_: ++ STRING "PDF16_" ++ .weak SYM(_ZTSDF16_) ++ .hidden SYM(_ZTSDF16_) ++ SECTION3(_ZTSDF16_) ++ ALIGN3 ++ .type SYM(_ZTSDF16_), OBJECT ++ .size SYM(_ZTSDF16_), 6 ++_ZTSDF16_: ++ STRING "DF16_" ++#endif ++#if defined __x86_64__ || defined __i386__ ++ .weak SYM(_ZTIPKDF16b) ++ SECTION1(_ZTIPKDF16b) ++ ALIGN1 ++ .type SYM(_ZTIPKDF16b), OBJECT ++ .size SYM(_ZTIPKDF16b), SIZE1 ++_ZTIPKDF16b: ++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF ++ POINTER SYM(_ZTSPKDF16b) ++ FLAGS 1 ++ PAD ++ POINTER SYM(_ZTIDF16b) ++ .weak SYM(_ZTIPDF16b) ++ SECTION1(_ZTIPDF16b) ++ ALIGN1 ++ .type SYM(_ZTIPDF16b), OBJECT ++ .size SYM(_ZTIPDF16b), SIZE1 ++_ZTIPDF16b: ++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF ++ POINTER SYM(_ZTSPDF16b) ++ FLAGS 0 ++ PAD ++ POINTER SYM(_ZTIDF16b) ++ .weak SYM(_ZTIDF16b) ++ SECTION2(_ZTIDF16b) ++ ALIGN2 ++ .type SYM(_ZTIDF16b), OBJECT ++ .size SYM(_ZTIDF16b), SIZE2 ++_ZTIDF16b: ++ POINTER SYM(_ZTVN10__cxxabiv123__fundamental_type_infoE)+OFF ++ POINTER SYM(_ZTSDF16b) ++ .weak SYM(_ZTSPKDF16b) ++ .hidden SYM(_ZTSPKDF16b) ++ SECTION3(_ZTSPKDF16b) ++ ALIGN3 ++ .type SYM(_ZTSPKDF16b), OBJECT ++ .size SYM(_ZTSPKDF16b), 8 ++_ZTSPKDF16b: ++ STRING "PKDF16b" ++ .weak SYM(_ZTSPDF16b) ++ .hidden SYM(_ZTSPDF16b) ++ SECTION3(_ZTSPDF16b) ++ ALIGN3 ++ .type SYM(_ZTSPDF16b), OBJECT ++ .size SYM(_ZTSPDF16b), 7 ++_ZTSPDF16b: ++ STRING "PDF16b" ++ .weak SYM(_ZTSDF16b) ++ .hidden SYM(_ZTSDF16b) ++ SECTION3(_ZTSDF16b) ++ ALIGN3 ++ .type SYM(_ZTSDF16b), OBJECT ++ .size SYM(_ZTSDF16b), 6 ++_ZTSDF16b: ++ STRING "DF16b" ++#endif ++#if defined __aarch64__ ++ .weak SYM(_ZTIPKu6__bf16) ++ SECTION1(_ZTIPKu6__bf16) ++ ALIGN1 ++ .type SYM(_ZTIPKu6__bf16), OBJECT ++ .size SYM(_ZTIPKu6__bf16), SIZE1 ++_ZTIPKu6__bf16: ++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF ++ POINTER SYM(_ZTSPKu6__bf16) ++ FLAGS 1 ++ PAD ++ POINTER SYM(_ZTIu6__bf16) ++ .weak SYM(_ZTIPu6__bf16) ++ SECTION1(_ZTIPu6__bf16) ++ ALIGN1 ++ .type SYM(_ZTIPu6__bf16), OBJECT ++ .size SYM(_ZTIPu6__bf16), SIZE1 ++_ZTIPu6__bf16: ++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF ++ POINTER SYM(_ZTSPu6__bf16) ++ FLAGS 0 ++ PAD ++ POINTER SYM(_ZTIu6__bf16) ++ .weak SYM(_ZTIu6__bf16) ++ SECTION2(_ZTIu6__bf16) ++ ALIGN2 ++ .type SYM(_ZTIu6__bf16), OBJECT ++ .size SYM(_ZTIu6__bf16), SIZE2 ++_ZTIu6__bf16: ++ POINTER SYM(_ZTVN10__cxxabiv123__fundamental_type_infoE)+OFF ++ POINTER SYM(_ZTSu6__bf16) ++ .weak SYM(_ZTSPKu6__bf16) ++ .hidden SYM(_ZTSPKu6__bf16) ++ SECTION3(_ZTSPKu6__bf16) ++ ALIGN3 ++ .type SYM(_ZTSPKu6__bf16), OBJECT ++ .size SYM(_ZTSPKu6__bf16), 11 ++_ZTSPKu6__bf16: ++ STRING "PKu6__bf16" ++ .weak SYM(_ZTSPu6__bf16) ++ .hidden SYM(_ZTSPu6__bf16) ++ SECTION3(_ZTSPu6__bf16) ++ ALIGN3 ++ .type SYM(_ZTSPu6__bf16), OBJECT ++ .size SYM(_ZTSPu6__bf16), 10 ++_ZTSPu6__bf16: ++ STRING "Pu6__bf16" ++ .weak SYM(_ZTSu6__bf16) ++ .hidden SYM(_ZTSu6__bf16) ++ SECTION3(_ZTSu6__bf16) ++ ALIGN3 ++ .type SYM(_ZTSu6__bf16), OBJECT ++ .size SYM(_ZTSu6__bf16), 9 ++_ZTSu6__bf16: ++ STRING "u6__bf16" ++#endif ++ .weak SYM(_ZTIPKDF32_) ++ SECTION1(_ZTIPKDF32_) ++ ALIGN1 ++ .type SYM(_ZTIPKDF32_), OBJECT ++ .size SYM(_ZTIPKDF32_), SIZE1 ++_ZTIPKDF32_: ++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF ++ POINTER SYM(_ZTSPKDF32_) ++ FLAGS 1 ++ PAD ++ POINTER SYM(_ZTIDF32_) ++ .weak SYM(_ZTIPDF32_) ++ SECTION1(_ZTIPDF32_) ++ ALIGN1 ++ .type SYM(_ZTIPDF32_), OBJECT ++ .size SYM(_ZTIPDF32_), SIZE1 ++_ZTIPDF32_: ++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF ++ POINTER SYM(_ZTSPDF32_) ++ FLAGS 0 ++ PAD ++ POINTER SYM(_ZTIDF32_) ++ .weak SYM(_ZTIDF32_) ++ SECTION2(_ZTIDF32_) ++ ALIGN2 ++ .type SYM(_ZTIDF32_), OBJECT ++ .size SYM(_ZTIDF32_), SIZE2 ++_ZTIDF32_: ++ POINTER SYM(_ZTVN10__cxxabiv123__fundamental_type_infoE)+OFF ++ POINTER SYM(_ZTSDF32_) ++ .weak SYM(_ZTSPKDF32_) ++ .hidden SYM(_ZTSPKDF32_) ++ SECTION3(_ZTSPKDF32_) ++ ALIGN3 ++ .type SYM(_ZTSPKDF32_), OBJECT ++ .size SYM(_ZTSPKDF32_), 8 ++_ZTSPKDF32_: ++ STRING "PKDF32_" ++ .weak SYM(_ZTSPDF32_) ++ .hidden SYM(_ZTSPDF32_) ++ SECTION3(_ZTSPDF32_) ++ ALIGN3 ++ .type SYM(_ZTSPDF32_), OBJECT ++ .size SYM(_ZTSPDF32_), 7 ++_ZTSPDF32_: ++ STRING "PDF32_" ++ .weak SYM(_ZTSDF32_) ++ .hidden SYM(_ZTSDF32_) ++ SECTION3(_ZTSDF32_) ++ ALIGN3 ++ .type SYM(_ZTSDF32_), OBJECT ++ .size SYM(_ZTSDF32_), 6 ++_ZTSDF32_: ++ STRING "DF32_" ++ .weak SYM(_ZTIPKDF32x) ++ SECTION1(_ZTIPKDF32x) ++ ALIGN1 ++ .type SYM(_ZTIPKDF32x), OBJECT ++ .size SYM(_ZTIPKDF32x), SIZE1 ++_ZTIPKDF32x: ++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF ++ POINTER SYM(_ZTSPKDF32x) ++ FLAGS 1 ++ PAD ++ POINTER SYM(_ZTIDF32x) ++ .weak SYM(_ZTIPDF32x) ++ SECTION1(_ZTIPDF32x) ++ ALIGN1 ++ .type SYM(_ZTIPDF32x), OBJECT ++ .size SYM(_ZTIPDF32x), SIZE1 ++_ZTIPDF32x: ++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF ++ POINTER SYM(_ZTSPDF32x) ++ FLAGS 0 ++ PAD ++ POINTER SYM(_ZTIDF32x) ++ .weak SYM(_ZTIDF32x) ++ SECTION2(_ZTIDF32x) ++ ALIGN2 ++ .type SYM(_ZTIDF32x), OBJECT ++ .size SYM(_ZTIDF32x), SIZE2 ++_ZTIDF32x: ++ POINTER SYM(_ZTVN10__cxxabiv123__fundamental_type_infoE)+OFF ++ POINTER SYM(_ZTSDF32x) ++ .weak SYM(_ZTSPKDF32x) ++ .hidden SYM(_ZTSPKDF32x) ++ SECTION3(_ZTSPKDF32x) ++ ALIGN3 ++ .type SYM(_ZTSPKDF32x), OBJECT ++ .size SYM(_ZTSPKDF32x), 8 ++_ZTSPKDF32x: ++ STRING "PKDF32x" ++ .weak SYM(_ZTSPDF32x) ++ .hidden SYM(_ZTSPDF32x) ++ SECTION3(_ZTSPDF32x) ++ ALIGN3 ++ .type SYM(_ZTSPDF32x), OBJECT ++ .size SYM(_ZTSPDF32x), 7 ++_ZTSPDF32x: ++ STRING "PDF32x" ++ .weak SYM(_ZTSDF32x) ++ .hidden SYM(_ZTSDF32x) ++ SECTION3(_ZTSDF32x) ++ ALIGN3 ++ .type SYM(_ZTSDF32x), OBJECT ++ .size SYM(_ZTSDF32x), 6 ++_ZTSDF32x: ++ STRING "DF32x" ++ .weak SYM(_ZTIPKDF64_) ++ SECTION1(_ZTIPKDF64_) ++ ALIGN1 ++ .type SYM(_ZTIPKDF64_), OBJECT ++ .size SYM(_ZTIPKDF64_), SIZE1 ++_ZTIPKDF64_: ++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF ++ POINTER SYM(_ZTSPKDF64_) ++ FLAGS 1 ++ PAD ++ POINTER SYM(_ZTIDF64_) ++ .weak SYM(_ZTIPDF64_) ++ SECTION1(_ZTIPDF64_) ++ ALIGN1 ++ .type SYM(_ZTIPDF64_), OBJECT ++ .size SYM(_ZTIPDF64_), SIZE1 ++_ZTIPDF64_: ++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF ++ POINTER SYM(_ZTSPDF64_) ++ FLAGS 0 ++ PAD ++ POINTER SYM(_ZTIDF64_) ++ .weak SYM(_ZTIDF64_) ++ SECTION2(_ZTIDF64_) ++ ALIGN2 ++ .type SYM(_ZTIDF64_), OBJECT ++ .size SYM(_ZTIDF64_), SIZE2 ++_ZTIDF64_: ++ POINTER SYM(_ZTVN10__cxxabiv123__fundamental_type_infoE)+OFF ++ POINTER SYM(_ZTSDF64_) ++ .weak SYM(_ZTSPKDF64_) ++ .hidden SYM(_ZTSPKDF64_) ++ SECTION3(_ZTSPKDF64_) ++ ALIGN3 ++ .type SYM(_ZTSPKDF64_), OBJECT ++ .size SYM(_ZTSPKDF64_), 8 ++_ZTSPKDF64_: ++ STRING "PKDF64_" ++ .weak SYM(_ZTSPDF64_) ++ .hidden SYM(_ZTSPDF64_) ++ SECTION3(_ZTSPDF64_) ++ ALIGN3 ++ .type SYM(_ZTSPDF64_), OBJECT ++ .size SYM(_ZTSPDF64_), 7 ++_ZTSPDF64_: ++ STRING "PDF64_" ++ .weak SYM(_ZTSDF64_) ++ .hidden SYM(_ZTSDF64_) ++ SECTION3(_ZTSDF64_) ++ ALIGN3 ++ .type SYM(_ZTSDF64_), OBJECT ++ .size SYM(_ZTSDF64_), 6 ++_ZTSDF64_: ++ STRING "DF64_" ++ .weak SYM(_ZTIPKDF64x) ++ SECTION1(_ZTIPKDF64x) ++ ALIGN1 ++ .type SYM(_ZTIPKDF64x), OBJECT ++ .size SYM(_ZTIPKDF64x), SIZE1 ++_ZTIPKDF64x: ++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF ++ POINTER SYM(_ZTSPKDF64x) ++ FLAGS 1 ++ PAD ++ POINTER SYM(_ZTIDF64x) ++ .weak SYM(_ZTIPDF64x) ++ SECTION1(_ZTIPDF64x) ++ ALIGN1 ++ .type SYM(_ZTIPDF64x), OBJECT ++ .size SYM(_ZTIPDF64x), SIZE1 ++_ZTIPDF64x: ++ POINTER SYM(_ZTVN10__cxxabiv119__pointer_type_infoE)+OFF ++ POINTER SYM(_ZTSPDF64x) ++ FLAGS 0 ++ PAD ++ POINTER SYM(_ZTIDF64x) ++ .weak SYM(_ZTIDF64x) ++ SECTION2(_ZTIDF64x) ++ ALIGN2 ++ .type SYM(_ZTIDF64x), OBJECT ++ .size SYM(_ZTIDF64x), SIZE2 ++_ZTIDF64x: ++ POINTER SYM(_ZTVN10__cxxabiv123__fundamental_type_infoE)+OFF ++ POINTER SYM(_ZTSDF64x) ++ .weak SYM(_ZTSPKDF64x) ++ .hidden SYM(_ZTSPKDF64x) ++ SECTION3(_ZTSPKDF64x) ++ ALIGN3 ++ .type SYM(_ZTSPKDF64x), OBJECT ++ .size SYM(_ZTSPKDF64x), 8 ++_ZTSPKDF64x: ++ STRING "PKDF64x" ++ .weak SYM(_ZTSPDF64x) ++ .hidden SYM(_ZTSPDF64x) ++ SECTION3(_ZTSPDF64x) ++ ALIGN3 ++ .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/ios_failure.cc b/libstdc++-v3/src/nonshared98/ios_failure.cc +new file mode 100644 +index 000000000..086f34482 +--- /dev/null ++++ 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 ++// 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/locale_facets.cc b/libstdc++-v3/src/nonshared98/locale_facets.cc +new file mode 100644 +index 000000000..04de4db13 +--- /dev/null ++++ b/libstdc++-v3/src/nonshared98/locale_facets.cc +@@ -0,0 +1,24 @@ ++// 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 ++// 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/locale_facets.cc" +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 ++ + namespace __detail + { + // The sentinel value is kept only for abi backward compatibility. +@@ -90,3 +93,5 @@ namespace __detail + #endif + }; + } // namespace __detail ++ ++#endif +diff --git a/libstdc++-v3/testsuite/experimental/simd/driver.sh b/libstdc++-v3/testsuite/experimental/simd/driver.sh +old mode 100755 +new mode 100644 +diff --git a/libstdc++-v3/testsuite/experimental/simd/generate_makefile.sh b/libstdc++-v3/testsuite/experimental/simd/generate_makefile.sh +old mode 100755 +new mode 100644 +-- +2.43.0 + diff --git a/GCC14-1002-change-gcc-version.patch b/GCC14-1002-change-gcc-version.patch new file mode 100644 index 0000000000000000000000000000000000000000..7e8c991704c3ca87794ca7c8ecce202f11188967 --- /dev/null +++ b/GCC14-1002-change-gcc-version.patch @@ -0,0 +1,10 @@ +diff --git a/gcc/BASE-VER b/gcc/BASE-VER +index 07ea9fa43..dab6a80f4 100644 +--- a/gcc/BASE-VER ++++ b/gcc/BASE-VER +@@ -1 +1 @@ +-14.2.0 ++14.2.1 +-- +2.43.0 + diff --git a/GCC14-1003-i386-Add-non-optimize-prefetchi-intrins.patch b/GCC14-1003-i386-Add-non-optimize-prefetchi-intrins.patch new file mode 100644 index 0000000000000000000000000000000000000000..195c31175b3dd8572ca3914c8ce66b460486d85f --- /dev/null +++ b/GCC14-1003-i386-Add-non-optimize-prefetchi-intrins.patch @@ -0,0 +1,88 @@ +From b4524c4430ba9771265bd9fc31e69a3f35dfe117 Mon Sep 17 00:00:00 2001 +From: Haochen Jiang +Date: Thu, 25 Jul 2024 16:16:05 +0800 +Subject: [PATCH] i386: Add non-optimize prefetchi intrins + +Under -O0, with the "newly" introduced intrins, the variable will be +transformed as mem instead of the origin symbol_ref. The compiler will +then treat the operand as invalid and turn the operation into nop, which +is not expected. Use macro for non-optimize to keep the variable as +symbol_ref just as how prefetch intrin does. + +gcc/ChangeLog: + + * config/i386/prfchiintrin.h + (_m_prefetchit0): Add macro for non-optimized option. + (_m_prefetchit1): Ditto. + +gcc/testsuite/ChangeLog: + + * gcc.target/i386/prefetchi-1b.c: New test. +--- + gcc/config/i386/prfchiintrin.h | 9 +++++++ + gcc/testsuite/gcc.target/i386/prefetchi-1b.c | 26 ++++++++++++++++++++ + 2 files changed, 35 insertions(+) + create mode 100644 gcc/testsuite/gcc.target/i386/prefetchi-1b.c + +diff --git a/gcc/config/i386/prfchiintrin.h b/gcc/config/i386/prfchiintrin.h +index dfca89c7d16..d6580e504c0 100644 +--- a/gcc/config/i386/prfchiintrin.h ++++ b/gcc/config/i386/prfchiintrin.h +@@ -37,6 +37,7 @@ + #define __DISABLE_PREFETCHI__ + #endif /* __PREFETCHI__ */ + ++#ifdef __OPTIMIZE__ + extern __inline void + __attribute__((__gnu_inline__, __always_inline__, __artificial__)) + _m_prefetchit0 (void* __P) +@@ -50,6 +51,14 @@ _m_prefetchit1 (void* __P) + { + __builtin_ia32_prefetchi (__P, 2); + } ++#else ++#define _m_prefetchit0(P) \ ++ __builtin_ia32_prefetchi(P, 3) ++ ++#define _m_prefetchit1(P) \ ++ __builtin_ia32_prefetchi(P, 2) ++ ++#endif + + #ifdef __DISABLE_PREFETCHI__ + #undef __DISABLE_PREFETCHI__ +diff --git a/gcc/testsuite/gcc.target/i386/prefetchi-1b.c b/gcc/testsuite/gcc.target/i386/prefetchi-1b.c +new file mode 100644 +index 00000000000..93139554d3c +--- /dev/null ++++ b/gcc/testsuite/gcc.target/i386/prefetchi-1b.c +@@ -0,0 +1,26 @@ ++/* { dg-do compile { target { ! ia32 } } } */ ++/* { dg-options "-mprefetchi -O0" } */ ++/* { dg-final { scan-assembler-times "\[ \\t\]+prefetchit0\[ \\t\]+bar\\(%rip\\)" 1 } } */ ++/* { dg-final { scan-assembler-times "\[ \\t\]+prefetchit1\[ \\t\]+bar\\(%rip\\)" 1 } } */ ++ ++#include ++ ++int ++bar (int a) ++{ ++ return a + 1; ++} ++ ++int ++foo1 (int b) ++{ ++ _m_prefetchit0 (bar); ++ return bar (b) + 1; ++} ++ ++int ++foo2 (int b) ++{ ++ _m_prefetchit1 (bar); ++ return bar (b) + 1; ++} +-- +2.31.1 + diff --git a/README.md b/README.md index b87855d2e80207b1bffc9a8c339663485d841117..5a084a6a9e1290e02591ab3a3e07402854e02abf 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,55 @@ # gcc-14 #### 介绍 -gcc multi-version toolset for openEuler +openEuler 24.03 LTS 版本选择 GCC 12.3.1 作为开发基线,确保在整 LTS 周期内,系统版本保持相对稳定。 +为满足用户对不同版本编译器的需求,使能多样算力新特性,基于 openEuler 24.09 系统,推出 gcc-toolset-14 副版本编译工具链,形成主版本为 GCC12,副版本为 GCC14 的编译器搭配,为用户提供更加灵活且高效的编译选择。 #### 软件架构 -软件架构说明 +```shell +## 默认 GCC12 路径 +PATH=/usr/bin/ +## 默认动态库路径 +LD_LIBRARY_PATH=/usr/lib64/ + +## gcc-toolset-14 副版本安装路径 +PATH=/opt/openEuler/gcc-toolset-14/root/usr/bin/ +``` + +#### 软件约束 + +| 名称| 版本要求| +| --- | --- | +| 系统版本| openEuler 24.09 以上 | +| 默认GCC | 12.3.1 | +| 架构 | Aarch64 / X86_64| +| Glibc | 2.34 及以上 | +| Binutils | 2.42 及以上| + +约束是指本多版本工具链在以上条件的版本中进行了完整的工程验证和兼容性测试,如果使用在其他场景中,不保证完整功能实现。 #### 安装教程 -1. xxxx -2. xxxx -3. xxxx +1. `yum install gcc-toolset-14-gcc gcc-toolset-14-g++` +2. 如果需要搭配 binutils-2.42,则 `yum install gcc-toolset-14-binutils` #### 使用说明 -1. xxxx -2. xxxx -3. xxxx +1. 安装 scl +> yum install scl-utils + +2. 注册 gcc-toolset-14 +> scl register /opt/openEuler/gcc-toolset-14/ + +使用`scl list-collections`显示 gcc-toolset-14 已经在 scl 中注册成功; + +3. 切换 gcc-toolset-14 +> scl enable gcc-toolset-14 bash + +4. 退出 gcc-toolset-14 +> exit + +退出bash shell会话,此时 GCC 的版本切换成系统默认版本。 #### 参与贡献 diff --git a/gcc-14.2.0.tar.xz b/gcc-14.2.0.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..89e6b270fa1d51677b20483e4ff93e6b8e7d0f5d Binary files /dev/null and b/gcc-14.2.0.tar.xz differ diff --git a/gcc-14.spec b/gcc-14.spec new file mode 100644 index 0000000000000000000000000000000000000000..da2064a86a1b1910dff4eae151d5c1ee1e44f21d --- /dev/null +++ b/gcc-14.spec @@ -0,0 +1,2220 @@ +%global scl 1 +%global vendor %{?_vendor:%{_vendor}}%{!?_vendor:openEuler} + +%global gcc_major 14 + +%global _unpackaged_files_terminate_build 0 +%global _performance_build 1 +# Hardening slows the compiler way too much. +%undefine _hardened_build +%undefine _annotated_build + +%if 0%{?scl:1} +%global _scl_prefix gcc-toolset-14- +%global _scl_path /opt/%{vendor}/gcc-toolset-14 +%global _scl_root /opt/%{vendor}/gcc-toolset-14/root +%global _prefix %{_scl_root}/usr +%global _bindir %{_prefix}/bin +%global gcc_ver %{nil} +%define binsuffix %{nil} +%define __provides_exclude ^lib.*$ +%global _root_infodir /usr/share/info +%global _root_prefix /usr +%global _root_sysconfdir /etc +%global _enable_debug_packages 0 +%endif + +%global multilib_64_archs sparc64 ppc64 ppc64p7 + +%global build_ada 0 +%global build_objc 0 +%global build_go 0 +%global build_d 0 + +%ifarch %{ix86} x86_64 ia64 ppc ppc64 ppc64le +%global build_libquadmath 1 +%else +%global build_libquadmath 0 +%endif +%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 riscv64 +%global build_libasan 1 +%else +%global build_libasan 0 +%endif +%ifarch x86_64 aarch64 +%global build_libhwasan 1 +%else +%global build_libhwasan 0 +%endif +%ifarch x86_64 ppc64 ppc64le aarch64 s390x riscv64 +%global build_libtsan 1 +%else +%global build_libtsan 0 +%endif +%ifarch x86_64 ppc64 ppc64le aarch64 s390x riscv64 +%global build_liblsan 1 +%else +%global build_liblsan 0 +%endif +%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 riscv64 +%global build_libubsan 1 +%else +%global build_libubsan 0 +%endif +%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips} riscv64 +%global build_libatomic 1 +%else +%global build_libatomic 0 +%endif +%ifarch %{ix86} x86_64 %{arm} alpha ppc ppc64 ppc64le ppc64p7 s390 s390x aarch64 riscv64 +%global build_libitm 1 +%else +%global build_libitm 0 +%endif +%global build_libstdcxx_docs 0 +%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips} riscv64 +%global attr_ifunc 1 +%else +%global attr_ifunc 0 +%endif +%ifarch sparc64 +%global multilib_32_arch sparcv9 +%endif +%ifarch ppc64 ppc64p7 +%global multilib_32_arch ppc +%endif +%ifarch x86_64 +%global multilib_32_arch i686 +%endif + +Summary: Various compilers (C, C++, Objective-C, ...) +Name: %{?_scl_prefix}gcc%{gcc_ver} +Version: 14.2.1 +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 +ExcludeArch: loongarch64 +Source0: https://ftp.gnu.org/gnu/gcc/gcc-14.2.0/gcc-14.2.0.tar.xz +URL: http://gcc.gnu.org + + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRequires: binutils >= 2.31 +BuildRequires: glibc-headers +BuildRequires: libtool, zlib-devel, texinfo, gettext, flex, bison, sharutils +BuildRequires: gmp-devel >= 4.1.2, mpfr-devel >= 3.1.0, libmpc-devel >= 0.8.1, isl-devel >= 0.15.0 +BuildRequires: gcc, gcc-c++, make, chrpath +BuildRequires: gdb +BuildRequires: glibc-devel >= 2.17 +%ifarch %{multilib_64_archs} sparcv9 ppc +# Ensure glibc{,-devel} is installed for both multilib arches +BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so +%endif +%ifarch ia64 +BuildRequires: libunwind >= 0.98 +%endif +Requires: binutils >= 2.31 +Conflicts: gdb < 5.1-2 +Requires: glibc-devel >= 2.17 +%if %{build_libstdcxx_docs} +BuildRequires: libxml2 +BuildRequires: graphviz +BuildRequires: doxygen >= 1.7.1 +BuildRequires: dblatex, texlive-collection-latex, docbook-style-xsl +%endif + +%if %{build_libasan} +Requires: %{?_scl_prefix}libasan%{gcc_ver} = %{version}-%{release} +%endif +Requires: libgcc >= 4.1.2-43 +Requires: %{?_scl_prefix}libgomp%{gcc_ver} = %{version}-%{release} +# lto-wrapper invokes make +Requires: make +AutoReq: true +# Various libraries are imported. #1859893 asks us to list them all. +Provides: %{?_scl_prefix}gcc%{gcc_ver}(major) = %{gcc_major} + +%global oformat %{nil} +%global oformat2 %{nil} +%ifarch %{ix86} +%global oformat OUTPUT_FORMAT(elf32-i386) +%endif +%ifarch x86_64 +%global oformat OUTPUT_FORMAT(elf64-x86-64) +%global oformat2 OUTPUT_FORMAT(elf32-i386) +%endif +%ifarch ppc +%global oformat OUTPUT_FORMAT(elf32-powerpc) +%global oformat2 OUTPUT_FORMAT(elf64-powerpc) +%endif +%ifarch ppc64 +%global oformat OUTPUT_FORMAT(elf64-powerpc) +%global oformat2 OUTPUT_FORMAT(elf32-powerpc) +%endif +%ifarch s390 +%global oformat OUTPUT_FORMAT(elf32-s390) +%endif +%ifarch s390x +%global oformat OUTPUT_FORMAT(elf64-s390) +%global oformat2 OUTPUT_FORMAT(elf32-s390) +%endif +%ifarch ia64 +%global oformat OUTPUT_FORMAT(elf64-ia64-little) +%endif +%ifarch ppc64le +%global oformat OUTPUT_FORMAT(elf64-powerpcle) +%endif +%ifarch aarch64 +%global oformat OUTPUT_FORMAT(elf64-littleaarch64) +%endif + +Patch1001: GCC14-1001-libstdc++-compat.patch +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 80 +%ifnarch %{arm} +%global _gnu %{nil} +%else +%global _gnu -gnueabi +%endif +%ifarch sparcv9 +%global gcc_target_platform sparc64-%{_vendor}-%{_target_os} +%endif +%ifarch ppc ppc64p7 +%global gcc_target_platform ppc64-%{_vendor}-%{_target_os} +%endif +%ifnarch sparcv9 ppc ppc64p7 +%global gcc_target_platform %{_target_platform} +%endif + +%description +The %{?_scl_prefix}gcc%{!?scl:14} package contains the GNU Compiler Collection version 14. + +%package -n %{?_scl_prefix}libgcc%{gcc_ver} +Summary: GCC version 14 shared support library +Autoreq: false + +%description -n %{?_scl_prefix}libgcc%{gcc_ver} +This package contains GCC shared support library which is needed +e.g. for exception handling support. + +%package -n %{?_scl_prefix}c++%{gcc_ver} +Summary: C++ support for GCC +Requires: %{?_scl_prefix}gcc%{gcc_ver} = %{version}-%{release} +Requires: %{?_scl_prefix}libstdc++%{gcc_ver}-devel = %{version}-%{release} +Provides: %{?_scl_prefix}gcc-g++%{gcc_ver} = %{version}-%{release} +Provides: %{?_scl_prefix}g++%{gcc_ver} = %{version}-%{release} +Autoreq: true + +%description -n %{?_scl_prefix}c++%{gcc_ver} +This package adds C++ support to the GNU Compiler Collection +version 14. It includes support for most of the current C++ specification +and a lot of support for the upcoming C++ specification. + + +%package -n %{?_scl_prefix}libstdc++%{gcc_ver} +Summary: GNU Standard C++ Library +Autoreq: true + +%description -n %{?_scl_prefix}libstdc++%{gcc_ver} +The libstdc++ package contains a rewritten standard compliant GCC Standard +C++ Library. + +%package -n %{?_scl_prefix}libstdc++%{gcc_ver}-devel +Summary: Header files and libraries for C++ development +Requires: %{?_scl_prefix}libstdc++%{gcc_ver}-devel = %{version}-%{release} +Autoreq: true + +%description -n %{?_scl_prefix}libstdc++%{gcc_ver}-devel +This is the GNU implementation of the standard C++ libraries. This +package includes the header files and libraries needed for C++ +development. This includes rewritten implementation of STL. + +%package -n %{?_scl_prefix}libstdc++%{gcc_ver}-docs +Summary: Documentation for the GNU standard C++ library +Autoreq: true + +%description -n %{?_scl_prefix}libstdc++%{gcc_ver}-docs +Manual, doxygen generated API information and Frequently Asked Questions +for the GNU standard C++ library. + +%package objc +Summary: Objective-C support for GCC +Requires: %{?_scl_prefix}gcc%{gcc_ver} = %{version}-%{release} +Requires: %{?_scl_prefix}libobjc%{gcc_ver} = %{version}-%{release} +Autoreq: true + +%description objc +gcc-objc provides Objective-C support for the GCC. +Mainly used on systems running NeXTSTEP, Objective-C is an +object-oriented derivative of the C language. + +%package objc++ +Summary: Objective-C++ support for GCC +Requires: %{?_scl_prefix}gcc%{gcc_ver}-c++ = %{version}-%{release} +Requires: %{?_scl_prefix}gcc%{gcc_ver}-objc = %{version}-%{release} +Autoreq: true + +%description objc++ +gcc-objc++ package provides Objective-C++ support for the GCC. + +%package -n %{?_scl_prefix}libobjc%{gcc_ver} +Summary: Objective-C runtime +Autoreq: true + +%description -n %{?_scl_prefix}libobjc%{gcc_ver} +This package contains Objective-C shared library which is needed to run +Objective-C dynamically linked programs. + +%package -n %{?_scl_prefix}gfortran%{gcc_ver} +Summary: Fortran support for GCC 14 +Requires: %{?_scl_prefix}gcc%{gcc_ver} = %{version}-%{release} +%if %{build_libquadmath} +Requires: %{?_scl_prefix}libquadmath%{gcc_ver} = %{version}-%{release} +%endif +Autoreq: true + +%description -n %{?_scl_prefix}gfortran%{gcc_ver} +This package provides support for compiling Fortran programs +with the GNU Compiler Collection. + +%package -n %{?_scl_prefix}libgfortran%{gcc_ver}-devel +Summary: Static Fortran libraries +Requires: %{?_scl_prefix}gcc%{gcc_ver} = %{version}-%{release} +%if %{build_libquadmath} +Requires: %{?_scl_prefix}libquadmath%{gcc_ver} = %{version}-%{release} +%endif + +%description -n %{?_scl_prefix}libgfortran%{gcc_ver}-devel +This package contains static Fortran libraries. +%if %{build_libquadmath} +Requires: %{?_scl_prefix}libquadmath%{gcc_ver} = %{version}-%{release} +%endif +Autoreq: true + +%package -n %{?_scl_prefix}libgomp%{gcc_ver} +Summary: GCC OpenMP shared support library + +%description -n %{?_scl_prefix}libgomp%{gcc_ver} +This package contains GCC shared support library which is needed +for OpenMP support. +%package gdb-plugin +Summary: GCC 14 plugin for GDB +Requires: %{?_scl_prefix}gcc%{gcc_ver} = %{version}-%{release} + +%description gdb-plugin +This package contains GCC 14 plugin for GDB C expression evaluation. + +%package -n %{?_scl_prefix}libgccjit%{gcc_ver} +Summary: Library for embedding GCC inside programs and libraries +Requires: %{?_scl_prefix}gcc%{gcc_ver} = %{version}-%{release} + +%description -n %{?_scl_prefix}libgccjit%{gcc_ver} +This package contains shared library with GCC 14 JIT front-end. + +%package -n %{?_scl_prefix}libgccjit%{gcc_ver}-devel +Summary: Support for embedding GCC inside programs and libraries +BuildRequires: python3-sphinx +Requires: %{?_scl_prefix}libgccjit%{gcc_ver} = %{version}-%{release} +Requires(post): /sbin/install-info +Requires(preun): /sbin/install-info + +%description -n %{?_scl_prefix}libgccjit%{gcc_ver}-devel +This package contains header files for GCC 14 JIT front end. + +Requires: %{?_scl_prefix}libgccjit%{gcc_ver} = %{version}-%{release} + +%package -n %{?_scl_prefix}libquadmath%{gcc_ver} +Summary: GCC 14 __float128 shared support library +Requires(post): /sbin/install-info +Requires(preun): /sbin/install-info + +%description -n %{?_scl_prefix}libquadmath%{gcc_ver} +This package contains GCC shared support library which is needed +for __float128 math support and for Fortran REAL*16 support. + +%package -n %{?_scl_prefix}libquadmath%{gcc_ver}-devel +Summary: GCC 14 __float128 support +Requires: libquadmath +Requires: %{?_scl_prefix}gcc%{gcc_ver} = %{version}-%{release} + +%description -n %{?_scl_prefix}libquadmath%{gcc_ver}-devel +This package contains headers for building Fortran programs using +REAL*16 and programs using __float128 math. + + +%package -n %{?_scl_prefix}libitm%{gcc_ver} +Summary: The GNU Transactional Memory library +Requires(post): /sbin/install-info +Requires(preun): /sbin/install-info +%description -n %{?_scl_prefix}libitm%{gcc_ver} +This package contains the GNU Transactional Memory library +which is a GCC transactional memory support runtime library. + +%package -n %{?_scl_prefix}libitm%{gcc_ver}-devel +Summary: The GNU Transactional Memory support + +Requires: %{?_scl_prefix}gcc%{gcc_ver} = %{version}-%{release} + +%description -n %{?_scl_prefix}libitm%{gcc_ver}-devel +This package contains headers and support files for the +GNU Transactional Memory library. + +%package -n %{?_scl_prefix}plugin%{gcc_ver}-devel +Summary: Support for compiling GCC plugins +Requires: %{?_scl_prefix}gcc%{gcc_ver} = %{version}-%{release} +Requires: gmp-devel >= 4.3.2 +Requires: mpfr-devel >= 3.1.0 +Requires: libmpc-devel >= 0.8.1 + +%description -n %{?_scl_prefix}plugin%{gcc_ver}-devel +This package contains header files and other support files +for compiling GCC 14 plugins. The GCC plugin ABI is currently +not stable, so plugins must be rebuilt any time GCC is updated. + +%package -n %{?_scl_prefix}libatomic%{gcc_ver} +Summary: The GNU Atomic library +Requires(post): /sbin/install-info +Requires(preun): /sbin/install-info + +%description -n %{?_scl_prefix}libatomic%{gcc_ver} +This package contains the GNU Atomic library +which is a GCC support runtime library for atomic operations not supported +by hardware. + +%package -n %{?_scl_prefix}libatomic%{gcc_ver}-devel +Summary: The GNU Atomic static library +%description -n %{?_scl_prefix}libatomic%{gcc_ver}-devel +This package contains GNU Atomic static libraries. + +%package -n %{?_scl_prefix}libasan%{gcc_ver} +Summary: The Address Sanitizer runtime library + +%description -n %{?_scl_prefix}libasan%{gcc_ver} +This package contains the Address Sanitizer library +which is used for -fsanitize=address instrumented programs. + +%package -n %{?_scl_prefix}libasan%{gcc_ver}-devel +Summary: The Address Sanitizer static library +Requires: %{?_scl_prefix}libasan%{gcc_ver} = %{version}-%{release} + +%description -n %{?_scl_prefix}libasan%{gcc_ver}-devel +This package contains Address Sanitizer static runtime library. + +%package -n %{?_scl_prefix}libhwasan%{gcc_ver} +Summary: The Hardware-assisted Address Sanitizer runtime library + +%description -n %{?_scl_prefix}libhwasan%{gcc_ver} +This package contains the Hardware-assisted Address Sanitizer library +which is used for -fsanitize=hwaddress instrumented programs. + +%package -n %{?_scl_prefix}libhwasan%{gcc_ver}-devel +Summary: The Hardware-assisted Address Sanitizer static library +Requires: %{?_scl_prefix}libhwasan%{gcc_ver} = %{version}-%{release} + +%description -n %{?_scl_prefix}libhwasan%{gcc_ver}-devel +This package contains Hardware-assisted Address Sanitizer static runtime +library. + +%package -n %{?_scl_prefix}libtsan%{gcc_ver} +Summary: The Thread Sanitizer runtime library + +%description -n %{?_scl_prefix}libtsan%{gcc_ver} +This package contains the Thread Sanitizer library +which is used for -fsanitize=thread instrumented programs. + +%package -n %{?_scl_prefix}libtsan%{gcc_ver}-devel +Summary: The Thread Sanitizer static library +Requires: %{?_scl_prefix}libtsan%{gcc_ver} = %{version}-%{release} + +%description -n %{?_scl_prefix}libtsan%{gcc_ver}-devel +This package contains Thread Sanitizer static runtime library. + +%package -n %{?_scl_prefix}libubsan%{gcc_ver} +Summary: The Undefined Behavior Sanitizer runtime library + +%description -n %{?_scl_prefix}libubsan%{gcc_ver} +This package contains the Undefined Behavior Sanitizer library +which is used for -fsanitize=undefined instrumented programs. + +%package -n %{?_scl_prefix}libubsan%{gcc_ver}-devel +Summary: The Undefined Behavior Sanitizer static library +Requires: %{?_scl_prefix}libubsan%{gcc_ver} = %{version}-%{release} + +%description -n %{?_scl_prefix}libubsan%{gcc_ver}-devel +This package contains Undefined Behavior Sanitizer static runtime library. + +%package -n %{?_scl_prefix}liblsan%{gcc_ver} +Summary: The Leak Sanitizer runtime library +Requires(post): /sbin/install-info +Requires(preun): /sbin/install-info + +%description -n %{?_scl_prefix}liblsan%{gcc_ver} +This package contains the Leak Sanitizer library +which is used for -fsanitize=leak instrumented programs. + +%package -n %{?_scl_prefix}liblsan%{gcc_ver}-devel +Summary: The Leak Sanitizer static library +Requires: %{?_scl_prefix}liblsan%{gcc_ver} = %{version}-%{release} + +%description -n %{?_scl_prefix}liblsan%{gcc_ver}-devel +This package contains Leak Sanitizer static runtime library. + +%prep +%autosetup -p1 -n gcc-14.2.0 + +echo '%{vendor} %{version}-%{release}' > gcc/DEV-PHASE + +# Default to -gdwarf-4 rather than -gdwarf-5 +sed -i '/UInteger Var(dwarf_version)/s/Init(5)/Init(4)/' gcc/common.opt +sed -i 's/\(version for most targets is \)5 /\14 /' gcc/doc/invoke.texi + +cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h + +./contrib/gcc_update --touch + +LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi + +sed -i -e 's/Common Driver Var(flag_report_bug)/& Init(1)/' gcc/common.opt +sed -i -e 's/context->report_bug = false;/context->report_bug = true;/' gcc/diagnostic.cc + + +%build + +export CONFIG_SITE=NONE + +CC=gcc +CXX=g++ +OPT_FLAGS="%{optflags}" +OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=[123]//g'` +OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[123]//g'` +OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/\(-Wp,\)\?-U_FORTIFY_SOURCE//g'` +OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-flto=auto//g;s/-flto//g;s/-ffat-lto-objects//g'` +OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-m64//g;s/-m32//g;s/-m31//g'` +OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mfpmath=sse/-mfpmath=sse -msse2/g'` +OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/ -pipe / /g'` +OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-fno-omit-frame-pointer//g;s/-mbackchain//g;s/-mno-omit-leaf-frame-pointer//g'` +OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-Werror=format-security/ /g'` +%ifarch sparc +OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mcpu=ultrasparc/-mtune=ultrasparc/g;s/-mcpu=v[78]//g'` +%endif +%ifarch %{ix86} +OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-march=i.86//g'` +%endif +OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e 's/[[:blank:]]\+/ /g'` +case "$OPT_FLAGS" in + *-fasynchronous-unwind-tables*) + sed -i -e 's/-fno-exceptions /-fno-exceptions -fno-asynchronous-unwind-tables /' \ + libgcc/Makefile.in + ;; +esac + +rm -rf obj-%{gcc_target_platform} +mkdir obj-%{gcc_target_platform} +cd obj-%{gcc_target_platform} + +%if %{build_objc} +enablelobjc=,objc,obj-c++ +%endif +%if %{build_go} +enablelgo=,go +%endif +%if %{build_d} +enableld=,d +%endif + +CONFIGURE_OPTS="\ + --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ + --with-bugurl=https://gitee.com/src-openeuler/gcc-14/issues \ + --enable-shared --enable-threads=posix --enable-checking=release --with-isl \ +%ifarch aarch64 riscv64 + --enable-multilib \ +%else + --disable-multilib \ +%endif + --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \ + --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only \ + --enable-libstdcxx-backtrace \ +%ifnarch %{mips} + --with-linker-hash-style=gnu \ +%endif + --enable-plugin --enable-initfini-array \ +%if %{attr_ifunc} + --enable-gnu-indirect-function \ +%endif +%ifarch %{arm} + --disable-sjlj-exceptions \ +%endif +%ifarch aarch64 + --with-multilib-list=lp64 \ +%endif +%ifarch %{ix86} x86_64 + --enable-cet \ + --with-tune=generic \ +%endif +%ifarch %{ix86} + --with-arch=x86-64 \ +%endif +%ifarch x86_64 + --with-arch_64=x86-64-v2 \ +%endif +%ifarch riscv64 + --with-arch=rv64gc --with-abi=lp64d --disable-libquadmath \ +%endif +%ifnarch sparc sparcv9 ppc + --build=%{gcc_target_platform} \ +%endif +%if 0%{?scl:1} + --program-suffix=%{binsuffix} +%endif + " + +# Add Secure Compilation Options +OPT_FLAGS="$OPT_FLAGS -O2 -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -fPIE -Wl,-z,relro,-z,now" +OPT_LDFLAGS="$OPT_LDFLAGS -Wl,-z,relro,-z,now" + +# Disable bootstrap for saving compilation time +export extra_ldflags_libobjc="-Wl,-z,relro,-z,now" +export FCFLAGS="$OPT_FLAGS" +CC="$CC" CXX="$CXX" \ + CFLAGS="$OPT_FLAGS" \ + CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \ + | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \ + LDFLAGS="$OPT_LDFLAGS" \ + CFLAGS_FOR_TARGET="$OPT_FLAGS" \ + CXXFLAGS_FOR_TARGET="$OPT_FLAGS" \ + XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" GCJFLAGS="$OPT_FLAGS" \ + ../configure --disable-bootstrap --without-cloog\ + --enable-languages=c,c++,fortran${enablelobjc}${enablelada}${enablelgo}${enableld},lto \ + $CONFIGURE_OPTS + +%ifarch sparc sparcv9 sparc64 +make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" LDFLAGS_FOR_TARGET=-Wl,-z,relro,-z,now +%else +make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" LDFLAGS_FOR_TARGET=-Wl,-z,relro,-z,now +%endif + +echo '/* GNU ld script + Use the shared library, but some functions are only in + the static library, so try that secondarily. */ +%{oformat} +INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 -lstdc++_nonshared%{nonsharedver} )' \ + > %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_system.so + + +CC="`%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-cc`" +CXX="`%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-cxx` `%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-includes`" + +# Build libgccjit separately, so that normal compiler binaries aren't -fpic +# unnecessarily. +mkdir objlibgccjit +cd objlibgccjit +CC="$CC" CXX="$CXX" \ + CFLAGS="$OPT_FLAGS" \ + CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \ + | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \ + XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \ + ../../configure --disable-bootstrap --enable-host-shared \ + --enable-languages=jit $CONFIGURE_OPTS +make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" all-gcc +cp -a gcc/libgccjit.so* ../gcc/ +cd ../gcc/ +ln -sf xgcc %{gcc_target_platform}-gcc-%{gcc_major} +cp -a Makefile{,.orig} +sed -i -e '/^CHECK_TARGETS/s/$/ check-jit/' Makefile +touch -r Makefile.orig Makefile +rm Makefile.orig +# No longer works. See #2213635/#2213634. +#make jit.sphinx.html +#make jit.sphinx.install-html jit_htmldir=`pwd`/../../rpm.doc/libgccjit-devel/html +cd .. + +# Make generated man pages even if Pod::Man is not new enough +perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl +for i in ../gcc/doc/*.texi; do + cp -a $i $i.orig; sed 's/ftable/table/' $i.orig > $i +done +make %{?_smp_mflags} -C gcc generated-manpages +for i in ../gcc/doc/*.texi; do mv -f $i.orig $i; done + +# Make generated doxygen pages. +%if %{build_libstdcxx_docs} +cd %{gcc_target_platform}/libstdc++-v3 +make doc-html-doxygen +make doc-man-doxygen +cd ../.. +%endif +# Copy various doc files here and there +cd .. +mkdir -p rpm.doc/gfortran rpm.doc/libquadmath rpm.doc/libitm +mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/jit,libstdc++-v3,libgomp,libcc1,libatomic,libsanitizer} + +for i in {gcc,gcc/cp,gcc/jit,libstdc++-v3,libgomp,libcc1,libatomic,libsanitizer}/ChangeLog*; do + cp -p $i rpm.doc/changelogs/$i +done + +(cd gcc/fortran; for i in ChangeLog*; do + cp -p $i ../../rpm.doc/gfortran/$i +done) +(cd libgfortran; for i in ChangeLog*; do + cp -p $i ../rpm.doc/gfortran/$i.libgfortran +done) +%if %{build_libquadmath} +(cd libquadmath; for i in ChangeLog* COPYING.LIB; do + cp -p $i ../rpm.doc/libquadmath/$i.libquadmath +done) +%endif +%if %{build_libitm} +(cd libitm; for i in ChangeLog*; do + cp -p $i ../rpm.doc/libitm/$i.libitm +done) +%endif + +rm -f rpm.doc/changelogs/gcc/ChangeLog.[1-9] +find rpm.doc -name \*ChangeLog\* | xargs bzip2 -9 + + +# Test the nonshared bits. +mkdir libstdc++_compat_test +cd libstdc++_compat_test +readelf -Ws %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 | sed -n '/\.symtab/,$d;/ UND /d;/@GLIBC_PRIVATE/d;/\(GLOBAL\|WEAK\|UNIQUE\)/p' | awk '{ if ($4 == "OBJECT") { printf "%s %s %s %s %s\n", $8, $4, $5, $6, $3 } else { printf "%s %s %s %s\n", $8, $4, $5, $6 }}' | sed 's/ UNIQUE / GLOBAL /;s/ WEAK / GLOBAL /;s/@@GLIBCXX_\(LDBL_\)\?[0-9.]*//;s/@@CXXABI_TM_[0-9.]*//;s/@@CXXABI_FLOAT128//;s/@@CXXABI_\(LDBL_\)\?[0-9.]*//' | LC_ALL=C sort -u > system.abilist +readelf -Ws ../obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so.6 | sed -n '/\.symtab/,$d;/ UND /d;/@GLIBC_PRIVATE/d;/\(GLOBAL\|WEAK\|UNIQUE\)/p' | awk '{ if ($4 == "OBJECT") { printf "%s %s %s %s %s\n", $8, $4, $5, $6, $3 } else { printf "%s %s %s %s\n", $8, $4, $5, $6 }}' | sed 's/ UNIQUE / GLOBAL /;s/ WEAK / GLOBAL /;s/@@GLIBCXX_\(LDBL_\)\?[0-9.]*//;s/@@CXXABI_TM_[0-9.]*//;s/@@CXXABI_FLOAT128//;s/@@CXXABI_\(LDBL_\)\?[0-9.]*//' | LC_ALL=C sort -u > vanilla.abilist +diff -up system.abilist vanilla.abilist | awk '/^\+\+\+/{next}/^\+/{print gensub(/^+(.*)$/,"\\1","1",$0)}' > system2vanilla.abilist.diff +../obj-%{gcc_target_platform}/gcc/xgcc -B ../obj-%{gcc_target_platform}/gcc/ -shared -o libstdc++_nonshared.so -Wl,--whole-archive ../obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a -Wl,--no-whole-archive %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 +readelf -Ws libstdc++_nonshared.so | sed -n '/\.symtab/,$d;/ UND /d;/@GLIBC_PRIVATE/d;/\(GLOBAL\|WEAK\|UNIQUE\)/p' | awk '{ if ($4 == "OBJECT") { printf "%s %s %s %s %s\n", $8, $4, $5, $6, $3 } else { printf "%s %s %s %s\n", $8, $4, $5, $6 }}' | sed 's/ UNIQUE / GLOBAL /;s/ WEAK / GLOBAL /;s/@@GLIBCXX_\(LDBL_\)\?[0-9.]*//;s/@@CXXABI_TM_[0-9.]*//;s/@@CXXABI_FLOAT128//;s/@@CXXABI_\(LDBL_\)\?[0-9.]*//' | LC_ALL=C sort -u > nonshared.abilist +echo ====================NONSHARED========================= +ldd -d -r ./libstdc++_nonshared.so || : +ldd -u ./libstdc++_nonshared.so || : +diff -up system2vanilla.abilist.diff nonshared.abilist || : +readelf -Ws ../obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a | grep HIDDEN.*UND | grep -v __dso_handle || : +echo ====================NONSHARED END===================== +rm -f libstdc++_nonshared.so +cd .. +%install +rm -rf %{buildroot} +mkdir -p %{buildroot} + +# RISC-V ABI wants to install everything in /lib64/lp64d or /usr/lib64/lp64d. +# Make these be symlinks to /lib64 or /usr/lib64 respectively. See: +# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/DRHT5YTPK4WWVGL3GIN5BF2IKX2ODHZ3/ +%ifarch riscv64 +for d in %{buildroot}%{_libdir} %{buildroot}/%{_lib} \ + %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib} \ + %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/%{_lib}; do + mkdir -p $d + (cd $d && ln -sf . lp64d) +done +%endif + +%{?scl:PATH=%{_bindir}${PATH:+:${PATH}}} +# Also set LD_LIBRARY_PATH so that DTS eu-strip (called from find-debuginfo.sh) +# can find the libraries it needs. +%{?scl:export LD_LIBRARY_PATH=%{_libdir}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}} +cd obj-%{gcc_target_platform} + +TARGET_PLATFORM=%{gcc_target_platform} + +# There are some MP bugs in libstdc++ Makefiles +make %{?_smp_mflags} -C %{gcc_target_platform}/libstdc++-v3 + +make prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \ + infodir=%{buildroot}%{_infodir} install + +FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} +FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} + +# fix some things +ln -sf gcc %{buildroot}%{_prefix}/bin/cc +mkdir -p %{buildroot}/lib +ln -sf ..%{_prefix}/bin/cpp %{buildroot}/lib/cpp +ln -sf gfortran %{buildroot}%{_prefix}/bin/f95 +rm -f %{buildroot}%{_infodir}/dir +gzip -9 %{buildroot}%{_infodir}/*.info* +ln -sf gcc %{buildroot}%{_prefix}/bin/gnatgcc +mkdir -p %{buildroot}%{_fmoddir} + +cxxconfig="`find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h`" +for i in `find %{gcc_target_platform}/[36]*/libstdc++-v3/include -name c++config.h 2>/dev/null`; do + if ! diff -up $cxxconfig $i; then + cat > %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/bits/c++config.h < +#if __WORDSIZE == 32 +%ifarch %{multilib_64_archs} +`cat $(find %{gcc_target_platform}/32/libstdc++-v3/include -name c++config.h)` +%else +`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)` +%endif +#else +%ifarch %{multilib_64_archs} +`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)` +%else +`cat $(find %{gcc_target_platform}/64/libstdc++-v3/include -name c++config.h)` +%endif +#endif +#endif +EOF + break + fi +done + +for f in `find %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/ -name c++config.h`; do + for i in 1 2 4 8; do + sed -i -e 's/#define _GLIBCXX_ATOMIC_BUILTINS_'$i' 1/#ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_'$i'\ +&\ +#endif/' $f + done +done + +# Nuke bits/*.h.gch dirs +# 1) sometimes it is hard to match the exact options used for building +# libstdc++-v3 or they aren't desirable +# 2) there are multilib issues, conflicts etc. with this +# 3) it is huge +# People can always precompile on their own whatever they want, but +# shipping this for everybody is unnecessary. +rm -rf %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/bits/*.h.gch + +%if %{build_libstdcxx_docs} +libstdcxx_doc_builddir=%{gcc_target_platform}/libstdc++-v3/doc/doxygen +mkdir -p ../rpm.doc/libstdc++-v3 +cp -r -p ../libstdc++-v3/doc/html ../rpm.doc/libstdc++-v3/html +cp -r -p $libstdcxx_doc_builddir/html ../rpm.doc/libstdc++-v3/html/api +mkdir -p %{buildroot}%{_mandir}/man3 +cp -r -p $libstdcxx_doc_builddir/man/man3/* %{buildroot}%{_mandir}/man3/ +find ../rpm.doc/libstdc++-v3 -name \*~ | xargs rm +%endif + +%ifarch sparcv9 sparc64 +ln -f %{buildroot}%{_prefix}/bin/%{gcc_target_platform}-gcc \ + %{buildroot}%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}-gcc +%endif +%ifarch ppc ppc64 ppc64p7 +ln -f %{buildroot}%{_prefix}/bin/%{gcc_target_platform}-gcc \ + %{buildroot}%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc +%endif + +%ifarch sparcv9 ppc +FULLLPATH=$FULLPATH/lib32 +%endif +%ifarch sparc64 ppc64 ppc64p7 +FULLLPATH=$FULLPATH/lib64 +%endif +if [ -n "$FULLLPATH" ]; then + mkdir -p $FULLLPATH +else + FULLLPATH=$FULLPATH +fi + +find %{buildroot} -name \*.la | xargs rm -f + +mv %{buildroot}%{_prefix}/%{_lib}/libgfortran.spec $FULLPATH/ +%if %{build_libitm} +mv %{buildroot}%{_prefix}/%{_lib}/libitm.spec $FULLPATH/ +%endif +%if %{build_libasan} +mv %{buildroot}%{_prefix}/%{_lib}/libsanitizer.spec $FULLPATH/ +%endif + +mkdir -p %{buildroot}/%{_lib} +mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}%{_prefix}/%{_lib}/libgcc_s-%{gcc_major}.so.1 +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgcc_s-%{gcc_major}.so.1 +ln -sf libgcc_s-%{gcc_major}.so.1 %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 +%ifarch %{ix86} x86_64 ppc ppc64 ppc64p7 ppc64le %{arm} aarch64 riscv64 +rm -f $FULLPATH/libgcc_s.so +echo '/* GNU ld script + Use the shared library, but some functions are only in + the static library, so try that secondarily. */ +%{oformat} +GROUP ( %{_prefix}/%{_lib}/libgcc_s.so.1 libgcc.a )' > $FULLPATH/libgcc_s.so +%else +ln -sf %{_prefix}/%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so +%endif +%ifarch sparcv9 ppc +%ifarch ppc +rm -f $FULLPATH/64/libgcc_s.so +echo '/* GNU ld script + Use the shared library, but some functions are only in + the static library, so try that secondarily. */ +%{oformat2} +GROUP ( %{_prefix}/lib64/libgcc_s.so.1 libgcc.a )' > $FULLPATH/64/libgcc_s.so +%else +ln -sf %{_prefix}/lib64/libgcc_s.so.1 $FULLPATH/64/libgcc_s.so +%endif +%endif +%ifarch %{multilib_64_archs} +%ifarch x86_64 ppc64 ppc64p7 +rm -f $FULLPATH/64/libgcc_s.so +echo '/* GNU ld script + Use the shared library, but some functions are only in + the static library, so try that secondarily. */ +%{oformat2} +GROUP ( %{_prefix}/lib/libgcc_s.so.1 libgcc.a )' > $FULLPATH/32/libgcc_s.so +%else +ln -sf %{_prefix}/lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so +%endif +%endif + +mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/ +cp -a %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a \ + $FULLLPATH/libstdc++_nonshared.a + +mkdir -p %{buildroot}%{_prefix}/libexec/getconf +if gcc/xgcc -B gcc/ -E -P -dD -xc /dev/null | grep '__LONG_MAX__.*\(2147483647\|0x7fffffff\($\|[LU]\)\)'; then + ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default +else + ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_prefix}/libexec/getconf/default +fi + +mkdir -p %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib} +mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++*gdb.py* \ + %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/ +pushd ../libstdc++-v3/python +for i in `find . -name \*.py`; do + touch -r $i %{buildroot}%{_prefix}/share/gcc-%{gcc_major}/python/$i +done +touch -r hook.in %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc++*gdb.py +popd +for f in `find %{buildroot}%{_prefix}/share/gcc-%{gcc_major}/python/ \ + %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/ -name \*.py`; do + r=${f/$RPM_BUILD_ROOT/} + %{__python3} -c 'import py_compile; py_compile.compile("'$f'", dfile="'$r'")' + %{__python3} -O -c 'import py_compile; py_compile.compile("'$f'", dfile="'$r'")' +done + +rm -f $FULLEPATH/libgccjit.so +mkdir -p %{buildroot}%{_prefix}/%{_lib}/ +cp -a objlibgccjit/gcc/libgccjit.so.* %{buildroot}%{_prefix}/%{_lib}/ +rm -f $FULLPATH/libgccjit.so +echo '/* GNU ld script */ +%{oformat} +INPUT ( %{_prefix}/%{_lib}/libgccjit.so.0 )' > $FULLPATH/libgccjit.so +cp -a ../gcc/jit/libgccjit*.h $FULLPATH/include/ +/usr/bin/install -c -m 644 objlibgccjit/gcc/doc/libgccjit.info %{buildroot}/%{_infodir}/ +gzip -9 %{buildroot}/%{_infodir}/libgccjit.info + +pushd $FULLPATH +echo '/* GNU ld script + Use the shared library, but some functions are only in + the static library, so try that secondarily. */ +%{oformat} +INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 -lstdc++_nonshared )' > libstdc++.so + +%if %{build_libquadmath} +rm -f libquadmath.so +echo '/* GNU ld script */ +%{oformat} +INPUT ( %{_prefix}/%{_lib}/libquadmath.so.0 )' > libquadmath.so +%endif + +%if %{build_libasan} +rm -f libasan.so +echo '/* GNU ld script */ +%{oformat} +INPUT ( %{?scl:%{_prefix}}/%{_lib}/libasan.so.8 )' > libasan.so +%endif +%if %{build_libtsan} +rm -f libtsan.so +echo '/* GNU ld script */ +%{oformat} +INPUT ( %{?scl:%{_prefix}}/%{_lib}/libtsan.so.2 )' > libtsan.so +%endif +ln -sf ../../../../%{_lib}/libgfortran.so.5.* libgfortran.so +ln -sf ../../../../%{_lib}/libgomp.so.1.* libgomp.so +%if %{build_libitm} +ln -sf ../../../../%{_lib}/libitm.so.1.* libitm.so +%endif +%if %{build_libatomic} +ln -sf ../../../../%{_lib}/libatomic.so.1.* libatomic.so +%endif +%if %{build_libubsan} +rm -f libubsan.so +echo '/* GNU ld script */ +%{oformat} +INPUT ( %{?scl:%{_prefix}}/%{_lib}/libubsan.so.1 )' > libubsan.so +%endif +%if %{build_libhwasan} +rm -f libhwasan.so +echo 'INPUT ( %{?scl:%{_prefix}}/%{_lib}/'`echo ../../../../%{_lib}/libhwasan.so.0.* | sed 's,^.*libh,libh,'`' )' > libhwasan.so +%endif +%if %{build_liblsan} +rm -f liblsan.so +echo '/* GNU ld script */ +%{oformat} +INPUT ( %{?scl:%{_prefix}}/%{_lib}/liblsan.so.0 )' > liblsan.so +%endif +mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++.*a $FULLLPATH/ +mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++fs.*a $FULLLPATH/ +mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++exp.*a $FULLLPATH/ +mv -f %{buildroot}%{_prefix}/%{_lib}/libsupc++.*a $FULLLPATH/ +mv -f %{buildroot}%{_prefix}/%{_lib}/libgfortran.*a $FULLLPATH/ +mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.*a . +%if %{build_libquadmath} +mv -f %{buildroot}%{_prefix}/%{_lib}/libquadmath.*a $FULLLPATH/ +%endif + +%if %{build_libitm} +mv -f %{buildroot}%{_prefix}/%{_lib}/libitm.*a $FULLLPATH/ +%endif +%if %{build_libatomic} +mv -f %{buildroot}%{_prefix}/%{_lib}/libatomic.*a $FULLLPATH/ +%endif +%if %{build_libasan} +mv -f %{buildroot}%{_prefix}/%{_lib}/libasan.*a $FULLLPATH/ +mv -f %{buildroot}%{_prefix}/%{_lib}/libasan_preinit.o $FULLLPATH/ +%endif +%if %{build_libubsan} +mv -f %{buildroot}%{_prefix}/%{_lib}/libubsan.*a $FULLLPATH/ +%endif +%if %{build_libtsan} +mv -f %{buildroot}%{_prefix}/%{_lib}/libtsan.*a $FULLPATH/ +mv -f %{buildroot}%{_prefix}/%{_lib}/libtsan_preinit.o $FULLPATH/ +%endif +%if %{build_libhwasan} +mv -f %{buildroot}%{_prefix}/%{_lib}/libhwasan.*a $FULLPATH/ +mv -f %{buildroot}%{_prefix}/%{_lib}/libhwasan_preinit.o $FULLPATH/ +%endif +%if %{build_liblsan} +mv -f %{buildroot}%{_prefix}/%{_lib}/liblsan.*a $FULLPATH/ +mv -f %{buildroot}%{_prefix}/%{_lib}/liblsan_preinit.o $FULLPATH/ +%endif + + +%ifarch sparcv9 ppc +echo '/* GNU ld script + Use the shared library, but some functions are only in + the static library, so try that secondarily. */ +%{oformat2} +INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libstdc++.so.6 -lstdc++_nonshared )' > 64/libstdc++.so +ln -sf ../`echo ../../../../lib/libgfortran.so.5.* | sed s~/lib/~/lib64/~` 64/libgfortran.so +ln -sf ../`echo ../../../../lib/libgomp.so.1.* | sed s~/lib/~/lib64/~` 64/libgomp.so + +echo '/* GNU ld script */ +%{oformat2} +INPUT ( %{_prefix}/lib64/libgccjit.so.0 )' > 64/libgccjit.so +%if %{build_libquadmath} +rm -f 64/libquadmath.so +echo '/* GNU ld script */ +%{oformat2} +INPUT ( %{_prefix}/lib64/libquadmath.so.0 )' > 64/libquadmath.so +%endif +%if %{build_libitm} +rm -f libitm.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libitm.so.1.* | sed 's,^.*libi,libi,'`' )' > libitm.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libitm.so.1.* | sed 's,^.*libi,libi,'`' )' > 64/libitm.so +%endif +%if %{build_libatomic} +rm -f libatomic.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libatomic.so.1.* | sed 's,^.*liba,liba,'`' )' > libatomic.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libatomic.so.1.* | sed 's,^.*liba,liba,'`' )' > 64/libatomic.so +%endif +%if %{build_libasan} +rm -f 64/libasan.so +echo '/* GNU ld script */ +%{oformat2} +INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libasan.so.8 )' > 64/libasan.so +%endif +%if %{build_libubsan} +rm -f 64/libubsan.so +echo '/* GNU ld script */ +%{oformat2} +INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libubsan.so.1 )' > 64/libubsan.so +%endif +ln -sf lib32/libgfortran.a libgfortran.a +ln -sf ../lib64/libgfortran.a 64/libgfortran.a +%if %{build_libquadmath} +mv -f %{buildroot}%{_prefix}/lib64/libquadmath.*a 64/ +%endif +mv -f %{buildroot}%{_prefix}/lib64/libgomp.*a 64/ +ln -sf lib32/libstdc++.a libstdc++.a +ln -sf ../lib64/libstdc++.a 64/libstdc++.a +ln -sf lib32/libstdc++fs.a libstdc++fs.a +ln -sf ../lib64/libstdc++fs.a 64/libstdc++fs.a +ln -sf lib32/libstdc++_nonshared.a libstdc++_nonshared.a +ln -sf ../lib64/libstdc++_nonshared.a 64/libstdc++_nonshared.a +ln -sf lib32/libstdc++exp.a libstdc++exp.a +ln -sf ../lib64/libstdc++exp.a 64/libstdc++exp.a +ln -sf lib32/libsupc++.a libsupc++.a +ln -sf ../lib64/libsupc++.a 64/libsupc++.a +%if %{build_libquadmath} +ln -sf lib32/libquadmath.a libquadmath.a +ln -sf ../lib64/libquadmath.a 64/libquadmath.a +%endif +%if %{build_libitm} +ln -sf lib32/libitm.a libitm.a +ln -sf ../lib64/libitm.a 64/libitm.a +%endif +%if %{build_libatomic} +ln -sf lib32/libatomic.a libatomic.a +ln -sf ../lib64/libatomic.a 64/libatomic.a +%endif +%if %{build_libasan} +ln -sf lib32/libasan.a libasan.a +ln -sf ../lib64/libasan.a 64/libasan.a +ln -sf lib32/libasan_preinit.o libasan_preinit.o +ln -sf ../lib64/libasan_preinit.o 64/libasan_preinit.o +%endif +%if %{build_libubsan} +ln -sf lib32/libubsan.a libubsan.a +ln -sf ../lib64/libubsan.a 64/libubsan.a +%endif +%endif + + +%ifarch %{multilib_64_archs} +mkdir -p 32 +echo '/* GNU ld script + Use the shared library, but some functions are only in + the static library, so try that secondarily. */ +%{oformat2} +INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libstdc++.so.6 -lstdc++_nonshared )' > 32/libstdc++.so +ln -sf ../`echo ../../../../lib64/libgfortran.so.5.* | sed s~/../lib64/~/~` 32/libgfortran.so +ln -sf ../`echo ../../../../lib64/libgomp.so.1.* | sed s~/../lib64/~/~` 32/libgomp.so + +echo '/* GNU ld script */ +%{oformat2} +INPUT ( %{_prefix}/lib/libgccjit.so.0 )' > 32/libgccjit.so +%if %{build_libquadmath} +rm -f 32/libquadmath.so +echo '/* GNU ld script */ +%{oformat2} +INPUT ( %{_prefix}/lib/libquadmath.so.0 )' > 32/libquadmath.so +%endif +%if %{build_libitm} +rm -f libitm.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libitm.so.1.* | sed 's,^.*libi,libi,'`' )' > libitm.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libitm.so.1.* | sed 's,^.*libi,libi,'`' )' > 32/libitm.so +%endif +%if %{build_libatomic} +rm -f libatomic.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libatomic.so.1.* | sed 's,^.*liba,liba,'`' )' > libatomic.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libatomic.so.1.* | sed 's,^.*liba,liba,'`' )' > 32/libatomic.so +%endif +%if %{build_libasan} +rm -f 32/libasan.so +echo '/* GNU ld script */ +%{oformat2} +INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libasan.so.8 )' > 32/libasan.so +%endif +%if %{build_libubsan} +rm -f 32/libubsan.so +echo '/* GNU ld script */ +%{oformat2} +INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libubsan.so.1 )' > 32/libubsan.so +%endif +%if %{build_libquadmath} +mv -f %{buildroot}%{_prefix}/lib/libquadmath.*a 32/ +%endif +mv -f %{buildroot}%{_prefix}/lib/libgomp.*a 32/ +%endif +%ifarch sparc64 ppc64 +ln -sf ../lib32/libgfortran.a 32/libgfortran.a +ln -sf lib64/libgfortran.a libgfortran.a +ln -sf ../lib32/libstdc++.a 32/libstdc++.a +ln -sf lib64/libstdc++.a libstdc++.a +ln -sf ../lib32/libstdc++fs.a 32/libstdc++fs.a +ln -sf lib64/libstdc++fs.a libstdc++fs.a +ln -sf ../lib32/libstdc++_nonshared.a 32/libstdc++_nonshared.a +ln -sf lib64/libstdc++_nonshared.a libstdc++_nonshared.a +ln -sf ../lib32/libstdc++exp.a 32/libstdc++exp.a +ln -sf lib64/libstdc++exp.a libstdc++exp.a +ln -sf ../lib32/libsupc++.a 32/libsupc++.a +ln -sf lib64/libsupc++.a libsupc++.a +%if %{build_libquadmath} +ln -sf ../lib32/libquadmath.a 32/libquadmath.a +ln -sf lib64/libquadmath.a libquadmath.a +%endif +%if %{build_libitm} +ln -sf ../lib32/libitm.a 32/libitm.a +ln -sf lib64/libitm.a libitm.a +%endif +%if %{build_libatomic} +ln -sf ../lib32/libatomic.a 32/libatomic.a +ln -sf lib64/libatomic.a libatomic.a +%endif +%if %{build_libasan} +ln -sf ../lib32/libasan.a 32/libasan.a +ln -sf lib64/libasan.a libasan.a +ln -sf ../lib32/libasan_preinit.o 32/libasan_preinit.o +ln -sf lib64/libasan_preinit.o libasan_preinit.o +%endif +%if %{build_libubsan} +ln -sf ../lib32/libubsan.a 32/libubsan.a +# BZ #2027391 +mv -f lib64/libubsan.a libubsan.a +%endif +%else +%ifarch %{multilib_64_archs} +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgfortran.a 32/libgfortran.a +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libstdc++.a 32/libstdc++.a +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libstdc++fs.a 32/libstdc++fs.a +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libstdc++_nonshared.a 32/libstdc++_nonshared.a +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libstdc++exp.a 32/libstdc++exp.a +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libsupc++.a 32/libsupc++.a +%if %{build_libquadmath} +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libquadmath.a 32/libquadmath.a +%endif +%if %{build_libitm} +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libitm.a 32/libitm.a +%endif +%if %{build_libatomic} +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libatomic.a 32/libatomic.a +%endif +%if %{build_libasan} +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libasan.a 32/libasan.a +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libasan_preinit.o 32/libasan_preinit.o +%endif +%if %{build_libubsan} +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libubsan.a 32/libubsan.a +%endif +%endif +%endif + +# If we are building a debug package then copy all of the static archives +# into the debug directory to keep them as unstripped copies. +%if 0%{?_enable_debug_packages} +for d in . $FULLLSUBDIR; do + mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/debug%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/$d + for f in `find $d -maxdepth 1 -a \ + \( -name libgfortran.a -o -name libgomp.a \ + -o -name libgcc.a -o -name libgcc_eh.a -o -name libgcov.a \ + -o -name libquadmath.a -o -name libitm.a \ + -o -name libatomic.a -o -name libasan.a \ + -o -name libtsan.a -o -name libubsan.a \ + -o -name liblsan.a \ + -o -name libstdc++_nonshared.a \ + -o -name libsupc++.a -o -name libstdc++exp.a\ + -o -name libstdc++.a -o -name libcaf_single.a \ + -o -name libstdc++fs.a \) -a -type f`; do + cp -a $f $RPM_BUILD_ROOT%{_prefix}/lib/debug%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/$d/ + done +done +%endif + +# Strip debug info from Fortran/ObjC/Java static libraries +strip -g `find . \( -name libgfortran.a -o -name libgomp.a \ + -o -name libgcc.a -o -name libgcov.a \ + -o -name libquadmath.a -o -name libitm.a \ + -o -name libatomic.a -o -name libasan.a \ + -o -name libtsan.a -o -name libubsan.a \ + -o -name liblsan.a -o -name libcc1.a \) -a -type f` +popd +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.5.* +chrpath -d %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.5.* +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgomp.so.1.* +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libcc1.so.0.* +chrpath -d %{buildroot}%{_prefix}/%{_lib}/libcc1.so.0.* +chmod 755 %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcc1plugin.so* +chrpath -d %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcc1plugin.so* +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} +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libquadmath.so.0.* +%endif +%if %{build_libitm} +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libitm.so.1.* +%endif +%if %{build_libatomic} +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libatomic.so.1.* +%endif +%if %{build_libasan} +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libasan.so.8.* +chrpath -d %{buildroot}%{_prefix}/%{_lib}/libasan.so.8.* +%endif +%if %{build_libtsan} +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libtsan.so.2.* +chrpath -d %{buildroot}%{_prefix}/%{_lib}/libtsan.so.2.* +%endif +%if %{build_libubsan} +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libubsan.so.1.* +chrpath -d %{buildroot}%{_prefix}/%{_lib}/libubsan.so.1.* +%endif +%if %{build_libhwasan} +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libhwasan.so.0.* +chrpath -d %{buildroot}%{_prefix}/%{_lib}/libhwasan.so.0.* + +%endif +%if %{build_liblsan} +chmod 755 %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.* +chrpath -d %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.* +%endif +%ifarch aarch64 +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libhwasan.so.0.* +chrpath -d %{buildroot}%{_prefix}/%{_lib}/libhwasan.so.0.* +%endif + + +for h in `find $FULLPATH/include -name \*.h`; do + if grep -q 'It has been auto-edited by fixincludes from' $h; then + rh=`grep -A2 'It has been auto-edited by fixincludes from' $h | tail -1 | sed 's|^.*"\(.*\)".*$|\1|'` + diff -up $rh $h || : + rm -f $h + fi +done + +cat > %{buildroot}%{_prefix}/bin/c89 <<"EOF" +#!/bin/sh +fl="-std=c89" +for opt; do + case "$opt" in + -ansi|-std=c89|-std=iso9899:1990) fl="";; + -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2 + exit 1;; + esac +done +exec gcc $fl ${1+"$@"} +EOF +cat > %{buildroot}%{_prefix}/bin/c99 <<"EOF" +#!/bin/sh +fl="-std=c99" +for opt; do + case "$opt" in + -std=c99|-std=iso9899:1999) fl="";; + -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2 + exit 1;; + esac +done +exec gcc $fl ${1+"$@"} +EOF +chmod 755 %{buildroot}%{_prefix}/bin/c?9 + +cat < %{buildroot}%{_scl_path}/enable +# General environment variables +export PATH=%{_bindir}\${PATH:+:\${PATH}} +export MANPATH=%{_mandir}:\${MANPATH} +export INFOPATH=%{_infodir}\${INFOPATH:+:\${INFOPATH}} +export PCP_DIR=%{_scl_root} + +# bz847911 workaround: +# we need to evaluate rpm's installed run-time % { _libdir }, not rpmbuild time +# or else /etc/ld.so.conf.d files? +rpmlibdir=\$(rpm --eval "%%{_libdir}") +# bz1017604: On 64-bit hosts, we should include also the 32-bit library path. +if [ "\$rpmlibdir" != "\${rpmlibdir/lib64/}" ]; then + rpmlibdir32=":%{_scl_root}\${rpmlibdir/lib64/lib}" +fi +export LD_LIBRARY_PATH=%{_scl_root}\$rpmlibdir\$rpmlibdir32\${LD_LIBRARY_PATH:+:\${LD_LIBRARY_PATH}} +export LD_LIBRARY_PATH=%{_scl_root}\$rpmlibdir\$rpmlibdir32:%{_scl_root}\$rpmlibdir/dyninst\$rpmlibdir32/dyninst\${LD_LIBRARY_PATH:+:\${LD_LIBRARY_PATH}} + +EOF +chmod 755 %{buildroot}%{_scl_path}/enable + +cat < %{buildroot}%{_bindir}/sudo +#! /bin/sh +# TODO: parse & pass-through sudo options from \$@ +sudo_options="-E" + +for arg in "\$@" +do + case "\$arg" in + *\'*) + arg=`echo "\$arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + cmd_options="\$cmd_options '\$arg'" +done +exec /usr/bin/sudo \$sudo_options LD_LIBRARY_PATH=\$LD_LIBRARY_PATH PATH=\$PATH scl enable %{scl} "\$cmd_options" +EOF +chmod 775 %{buildroot}%{_bindir}/sudo + +cd .. + +# Remove binaries we will not be including, so that they don't end up in +# gcc-debuginfo +rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a,libstdc++.so*,libgfortran.so,libgcc_s.so} || : +%if 0%{?scl:1} +rm -f %{buildroot}%{_prefix}/%{_lib}/{libitm.so,libatomic.so,libasan.so,libtsan.so,libubsan.so,liblsan.so} +%if %{build_libquadmath} +rm -f %{buildroot}%{_prefix}/%{_lib}/{libquadmath.so} +%endif +%if %{build_libhwasan} +rm -f %{buildroot}%{_prefix}/%{_lib}/{libhwasan.so} +%endif +%endif +rm -f %{buildroot}%{_prefix}/%{_lib}/libgomp.so +rm -f $FULLEPATH/install-tools/{mkheaders,fixincl} +rm -f %{buildroot}%{_prefix}/lib/{32,64}/libiberty.a +rm -f %{buildroot}%{_prefix}/%{_lib}/libssp* +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 +rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gfortran || : + +%ifarch %{multilib_64_archs} +# Remove libraries for the other arch on multilib arches +rm -f %{buildroot}%{_prefix}/lib/lib*.so* +rm -f %{buildroot}%{_prefix}/lib/lib*.a +rm -f %{buildroot}/lib/libgcc_s*.so* +%else +%ifarch sparcv9 ppc +rm -f %{buildroot}%{_prefix}/lib64/lib*.so* +rm -f %{buildroot}%{_prefix}/lib64/lib*.a +rm -f %{buildroot}/lib64/libgcc_s*.so* +%endif +%endif + +rm -f %{buildroot}%{mandir}/man3/ffi* +%ifnarch sparc64 ppc64 +%ifarch %{multilib_64_archs} +cat <<\EOF > %{buildroot}%{_prefix}/bin/%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}-gcc-%{gcc_major} +#!/bin/sh +%ifarch s390x +exec %{gcc_target_platform}-gcc-%{gcc_major} -m31 "$@" +%else +exec %{gcc_target_platform}-gcc-%{gcc_major} -m32 "$@" +%endif +EOF +chmod 755 %{buildroot}%{_prefix}/bin/%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}-gcc-%{gcc_major} +%endif +%endif + +# Help plugins find out nvra. +echo gcc-%{version}-%{release}.%{_arch} > $FULLPATH/rpmver + +# Add symlink to lto plugin in the binutils plugin directory. +%{__mkdir_p} %{buildroot}%{_libdir}/bfd-plugins/ +ln -s ../../libexec/gcc/%{gcc_target_platform}/%{gcc_major}/liblto_plugin.so \ + %{buildroot}%{_libdir}/bfd-plugins/ + + +%check +cd obj-%{gcc_target_platform} + +%{?scl:PATH=%{_bindir}${PATH:+:${PATH}}} +# Test against the system libstdc++.so.6 + libstdc++_nonshared.a combo +mv %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so.6{,.not_here} +mv %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so{,.not_here} +ln -sf %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 \ + %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so.6 +echo '/* GNU ld script + Use the shared library, but some functions are only in + the static library, so try that secondarily. */ +%{oformat} +INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 -lstdc++_nonshared )' \ + > %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so +cp -a %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a \ + %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared.a + + +# Because glibc Prereq's libgcc and /sbin/ldconfig +# comes from glibc, it might not exist yet when +# libgcc is installed +%post -n %{?_scl_prefix}libgcc%{gcc_ver} -p +if posix.access ("/sbin/ldconfig", "x") then + local pid = posix.fork () + if pid == 0 then + posix.exec ("/sbin/ldconfig") + elseif pid ~= -1 then + posix.wait (pid) + end +end + +%postun -n %{?_scl_prefix}libgcc%{gcc_ver} -p +if posix.access ("/sbin/ldconfig", "x") then + local pid = posix.fork () + if pid == 0 then + posix.exec ("/sbin/ldconfig") + elseif pid ~= -1 then + posix.wait (pid) + end +end + +%ldconfig_scriptlets -n %{?_scl_prefix}libstdc++%{gcc_ver}-devel + +%ldconfig_scriptlets -n %{?_scl_prefix}libobjc%{gcc_ver} + +%ldconfig_scriptlets -n %{?_scl_prefix}gfortran%{gcc_ver} + +%ldconfig_scriptlets -n %{?_scl_prefix}libgphobos%{gcc_ver} + +%ldconfig_scriptlets -n %{?_scl_prefix}libgnat%{gcc_ver} + +%ldconfig_scriptlets -n %{?_scl_prefix}libgomp%{gcc_ver} + +%ldconfig_scriptlets gdb-plugin + +%ldconfig_scriptlets -n %{?_scl_prefix}libgccjit%{gcc_ver} + +%ldconfig_scriptlets -n %{?_scl_prefix}libquadmath%{gcc_ver} + +%ldconfig_scriptlets -n %{?_scl_prefix}libitm%{gcc_ver} + +%ldconfig_scriptlets -n %{?_scl_prefix}libatomic%{gcc_ver} + +%ldconfig_scriptlets -n %{?_scl_prefix}libasan%{gcc_ver} + +%ldconfig_scriptlets -n %{?_scl_prefix}libubsan%{gcc_ver} + +%ldconfig_scriptlets -n %{?_scl_prefix}libtsan%{gcc_ver} + +%ldconfig_scriptlets -n %{?_scl_prefix}liblsan%{gcc_ver} + +%ldconfig_scriptlets -n %{?_scl_prefix}libgo%{gcc_ver} + +%files +%{_scl_path}/enable +%{_prefix}/bin/sudo +%{_prefix}/bin/c89 +%{_prefix}/bin/c99 +%{_prefix}/bin/gcc +%{_prefix}/bin/gcov +%{_prefix}/bin/gcov-tool +%{_prefix}/bin/gcov-dump +%{_prefix}/bin/gcc-ar +%{_prefix}/bin/gcc-nm +%{_prefix}/bin/gcc-ranlib +%{_prefix}/bin/lto-dump +%ifarch ppc +%{_prefix}/bin/%{_target_platform}-gcc +%endif +%ifarch sparc64 sparcv9 +%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}-gcc +%endif +%ifarch ppc64 ppc64p7 +%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc +%endif +%{_prefix}/bin/%{gcc_target_platform}-gcc* +%if 0%{?scl:1} +%{_prefix}/bin/cc +%{_prefix}/bin/cpp +%{_mandir}/man1/gcc.1* +%{_mandir}/man1/cpp.1* +%{_mandir}/man1/gcov.1* +%{_mandir}/man1/gcov-tool.1* +%{_mandir}/man1/gcov-dump.1* +%{_mandir}/man1/lto-dump.1* +%{_infodir}/gcc* +%{_infodir}/cpp* +%endif +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} +%dir %{_prefix}/libexec/gcc +%dir %{_prefix}/libexec/gcc/%{gcc_target_platform} +%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include +%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/lto1 +%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/lto-wrapper +%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/liblto_plugin.so* +%{_libdir}/bfd-plugins/liblto_plugin.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/rpmver +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stddef.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdarg.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdfix.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/varargs.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/float.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/limits.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdbool.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/iso646.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/syslimits.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/unwind.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/omp.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/openacc.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/acc_prof.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdint.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdint-gcc.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdalign.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdnoreturn.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdatomic.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/gcov.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdckdint.h +%ifarch %{ix86} x86_64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xmmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/emmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pmmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tmmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ammintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/smmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/nmmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/wmmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/immintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/x86intrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/fma4intrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xopintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/lwpintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/popcntintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmiintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tbmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ia32intrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx2intrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmi2intrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/f16cintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/fmaintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/lzcntintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/rtmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xtestintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/adxintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/prfchwintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/rdseedintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/fxsrintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsaveintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsaveoptintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512cdintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512erintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512fintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512pfintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/shaintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mm_malloc.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mm3dnow.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cpuid.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cross-stdarg.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bwintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512dqintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512ifmaintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512ifmavlintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmiintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmivlintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vlbwintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vldqintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vlintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/clflushoptintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/clwbintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mwaitxintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsavecintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsavesintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/clzerointrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pkuintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx5124fmapsintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx5124vnniwintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vpopcntdqintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sgxintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/gfniintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cetintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cet.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmi2intrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmi2vlintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vnniintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vnnivlintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vaesintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vpclmulqdqintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vpopcntdqvlintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bitalgintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pconfigintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/wbnoinvdintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/movdirintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/waitpkgintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cldemoteintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bf16vlintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bf16intrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/enqcmdintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vp2intersectintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vp2intersectvlintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/serializeintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tsxldtrkintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxtileintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxint8intrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxbf16intrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/x86gprintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/uintrintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/hresetintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/keylockerintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxvnniintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mwaitintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512fp16intrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512fp16vlintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxifmaintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxvnniint8intrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxneconvertintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cmpccxaddintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxfp16intrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/prfchiintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/raointintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxcomplexintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bitalgvlintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxvnniint16intrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sha512intrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sm3intrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sm4intrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/usermsrintrin.h +%endif +%ifarch ia64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ia64intrin.h +%endif +%ifarch ppc ppc64 ppc64le ppc64p7 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ppc-asm.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/altivec.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ppu_intrinsics.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/si2vmx.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/spu2vmx.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vec_types.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmxlintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmi2intrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmiintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xmmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mm_malloc.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/emmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/x86intrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pmmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tmmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/smmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amo.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/nmmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/immintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/x86gprintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/rs6000-vecdefines.h +%endif +%ifarch %{arm} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/unwind-arm-common.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_neon.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_acle.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_cmse.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_fp16.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_bf16.h +%endif +%ifarch aarch64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_neon.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_acle.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_fp16.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_bf16.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_sve.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_sme.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_neon_sve_bridge.h +%endif +%ifarch sparc sparcv9 sparc64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/visintrin.h +%endif +%ifarch s390 s390x +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/s390intrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmxlintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vecintrin.h +%endif +%ifarch riscv64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/riscv_vector.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/riscv_crypto.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/riscv_bitmanip.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/riscv_th_vector.h +%endif +%if %{build_libasan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sanitizer +%endif +%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1 +%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/collect2 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/crt*.o +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcc.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcov.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcc_eh.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcc_s.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgomp.spec +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgomp.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgomp.so +%if %{build_libitm} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.spec +%endif +%if %{build_libasan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsanitizer.spec +%endif +%ifarch sparcv9 sparc64 ppc ppc64 +%if %{build_libquadmath} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so +%endif +%endif +%ifarch sparcv9 ppc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/crt*.o +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcc.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcov.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcc_eh.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcc_s.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgomp.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgomp.so +%if %{build_libquadmath} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libquadmath.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libquadmath.so +%endif +%if %{build_libitm} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libitm.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libitm.so +%endif +%if %{build_libatomic} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libatomic.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libatomic.so +%endif +%if %{build_libasan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libasan.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libasan.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libasan_preinit.o +%endif +%if %{build_libubsan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libubsan.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libubsan.so +%endif +%endif +%ifarch %{multilib_64_archs} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/crt*.o +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcc.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcov.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcc_eh.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcc_s.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgomp.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgomp.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgccjit.so +%if %{build_libquadmath} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libquadmath.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libquadmath.so +%endif +%if %{build_libitm} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libitm.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libitm.so +%endif +%if %{build_libatomic} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libatomic.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libatomic.so +%endif +%if %{build_libasan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan_preinit.o +%endif +%if %{build_libubsan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libubsan.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libubsan.so +%endif +%endif +%ifarch sparcv9 sparc64 ppc ppc64 ppc64p7 +%if %{build_libquadmath} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so +%endif +%if %{build_libitm} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.so +%endif +%if %{build_libatomic} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.so +%endif +%if %{build_libasan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan_preinit.o +%endif +%if %{build_libubsan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.so +%endif +%if %{build_libtsan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.so +%endif +%if %{build_libhwasan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libhwasan.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libhwasan_preinit.o +%endif +%if %{build_liblsan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.so +%endif +%endif +%doc gcc/README* rpm.doc/changelogs/gcc/ChangeLog* gcc/COPYING* COPYING.RUNTIME + +%files -n %{?_scl_prefix}libgcc%{gcc_ver} +%{_prefix}/%{_lib}/libgcc_s-%{gcc_major}.so.1 +%{_prefix}/%{_lib}/libgcc_s.so.1 +%{!?_licensedir:%global license %%doc} +%license gcc/COPYING* COPYING.RUNTIME + + +%files -n %{?_scl_prefix}c++%{gcc_ver} +%{_prefix}/bin/%{gcc_target_platform}-g++ +%{_prefix}/bin/g++ +%if 0%{?scl:1} +%{_prefix}/bin/%{gcc_target_platform}-c++ +%{_prefix}/bin/c++ +%{_mandir}/man1/g++.1* +%endif +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} +%dir %{_prefix}/libexec/gcc +%dir %{_prefix}/libexec/gcc/%{gcc_target_platform} +%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} +%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1plus +%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/g++-mapper-server +%ifarch sparcv9 ppc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++fs.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++_nonshared.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++exp.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libsupc++.a +%endif +%ifarch %{multilib_64_archs} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++fs.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++_nonshared.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++exp.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libsupc++.a +%endif +%ifarch sparcv9 ppc %{multilib_64_archs} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsupc++.a +%endif +%ifarch sparcv9 sparc64 ppc ppc64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++fs.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++_nonshared.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++exp.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsupc++.a +%endif +%doc rpm.doc/changelogs/gcc/cp/ChangeLog* + + +%files -n %{?_scl_prefix}libstdc++%{gcc_ver}-devel +%dir %{_prefix}/include/c++ +%{_prefix}/include/c++/%{gcc_major} +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} +%ifarch sparcv9 ppc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++fs.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++_nonshared.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++exp.a +%endif +%ifarch sparc64 ppc64 +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++fs.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++_nonshared.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++exp.a +%endif +%ifnarch sparcv9 sparc64 ppc ppc64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++fs.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++_nonshared.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++exp.a +%endif +%ifnarch sparcv9 ppc %{multilib_64_archs} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsupc++.a +%endif +%doc rpm.doc/changelogs/libstdc++-v3/ChangeLog* libstdc++-v3/README* + + +%if %{build_libstdcxx_docs} +%files -n %{?_scl_prefix}libstdc++%{gcc_ver}-docs +%{_mandir}/man3/* +%doc rpm.doc/libstdc++-v3/html +%endif + +%files -n %{?_scl_prefix}gfortran%{gcc_ver} +%{_prefix}/bin/gfortran +%{_prefix}/bin/f95 +%if 0%{?scl:1} +%{_mandir}/man1/gfortran.1* +%{_infodir}/gfortran* +%endif +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} +%dir %{_prefix}/libexec/gcc +%dir %{_prefix}/libexec/gcc/%{gcc_target_platform} +%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ISO_Fortran_binding.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib.f90 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib.mod +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib_kinds.mod +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc.f90 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc.mod +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc_kinds.mod +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc_lib.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/ieee_arithmetic.mod +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/ieee_exceptions.mod +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/ieee_features.mod +%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/f951 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.spec +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libcaf_single.a +%ifarch sparcv9 sparc64 ppc ppc64 ppc64p7 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.a +%endif +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.so +%ifarch sparcv9 ppc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libcaf_single.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgfortran.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgfortran.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/finclude +%endif +%ifarch %{multilib_64_archs} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libcaf_single.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgfortran.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgfortran.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/finclude +%endif +%dir %{_fmoddir} +%doc rpm.doc/gfortran/* + +%files -n %{?_scl_prefix}libgfortran%{gcc_ver}-devel +%{_prefix}/%{_lib}/libgfortran.so.5* +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} +%ifarch sparcv9 ppc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libgfortran.a +%endif +%ifarch sparc64 ppc64 ppc64p7 +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libgfortran.a +%endif +%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.a +%endif +%files -n %{?_scl_prefix}libgomp%{gcc_ver} +%{_prefix}/%{_lib}/libgomp.so.1* +%{_infodir}/libgomp.info* +%doc rpm.doc/changelogs/libgomp/ChangeLog* + +%if %{build_libquadmath} +%files -n %{?_scl_prefix}libquadmath%{gcc_ver} +%{_prefix}/%{_lib}/libquadmath.so.0* +%{_infodir}/libquadmath.info* +%{!?_licensedir:%global license %%doc} +%license rpm.doc/libquadmath/COPYING* +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/quadmath.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/quadmath_weak.h +%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so +%endif +%doc rpm.doc/libquadmath/ChangeLog* +%ifarch sparcv9 ppc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libquadmath.a +%endif +%ifarch sparc64 ppc64 ppc64p7 +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libquadmath.a +%endif +%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.a +%endif +%endif + +%if %{build_libitm} +%files -n %{?_scl_prefix}libitm%{gcc_ver} +%{_prefix}/%{_lib}/libitm.so.1* +%{_infodir}/libitm.info* +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include +#%%{_prefix}/lib/gcc/%%{gcc_target_platform}/%%{gcc_major}/include/itm.h +#%%{_prefix}/lib/gcc/%%{gcc_target_platform}/%%{gcc_major}/include/itm_weak.h +%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.so +%endif +%doc rpm.doc/libitm/ChangeLog* + +%ifarch sparcv9 ppc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libitm.a +%endif +%ifarch sparc64 ppc64 ppc64p7 +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libitm.a +%endif +%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.a +%endif +%endif + +%if %{build_libatomic} +%files -n %{?_scl_prefix}libatomic%{gcc_ver} +%{_prefix}/%{_lib}/libatomic.so.1* +%ifarch sparcv9 ppc +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libatomic.so +%endif +%ifarch %{multilib_64_archs} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libatomic.so +%endif +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.so +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} +%ifarch sparcv9 ppc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libatomic.a +%endif +%ifarch sparc64 ppc64 ppc64p7 +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libatomic.a +%endif +%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.a +%endif +%doc rpm.doc/changelogs/libatomic/ChangeLog* +%endif + +%if %{build_libasan} +%files -n %{?_scl_prefix}libasan%{gcc_ver} +%{_prefix}/%{_lib}/libasan.so* + +%files -n %{?_scl_prefix}libasan%{gcc_ver}-devel +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} +%ifarch sparcv9 ppc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libasan.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libasan_preinit.o +%endif +%ifarch sparc64 ppc64 ppc64p7 +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libasan.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libasan_preinit.o +%endif +%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan_preinit.o +%endif +%doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT +%endif + + + +%if %{build_libtsan} +%files -n %{?_scl_prefix}libtsan%{gcc_ver} +%{_prefix}/%{_lib}/libtsan.so* + +%files -n %{?_scl_prefix}libtsan%{gcc_ver}-devel +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan_preinit.o +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.a +%doc rpm.doc/changelogs/libsanitizer/ChangeLog* +%{!?_licensedir:%global license %%doc} +%license libsanitizer/LICENSE.TXT +%endif + +%if %{build_libubsan} +%files -n %{?_scl_prefix}libubsan%{gcc_ver} +%{_prefix}/%{_lib}/libubsan.so* + +%files -n %{?_scl_prefix}libubsan%{gcc_ver}-devel +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.a +%doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT +%endif + +%if %{build_libhwasan} +%files -n %{?_scl_prefix}libhwasan%{gcc_ver} +%{_prefix}/%{_lib}/libhwasan.so.0* + +%files -n %{?_scl_prefix}libhwasan%{gcc_ver}-devel +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libhwasan.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libhwasan_preinit.o +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libhwasan.a +%doc rpm.doc/changelogs/libsanitizer/ChangeLog* +%{!?_licensedir:%global license %%doc} +%license libsanitizer/LICENSE.TXT +%endif + + +%if %{build_liblsan} +%files -n %{?_scl_prefix}liblsan%{gcc_ver} +%{_prefix}/%{_lib}/liblsan.so* + +%files -n %{?_scl_prefix}liblsan%{gcc_ver}-devel +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan_preinit.o +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.a +%doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT +%endif + + +%files -n %{?_scl_prefix}libgccjit%{gcc_ver} +%{_prefix}/%{_lib}/libgccjit.so.* +%doc rpm.doc/changelogs/gcc/jit/ChangeLog* + +%files -n %{?_scl_prefix}libgccjit%{gcc_ver}-devel +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgccjit.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/libgccjit*.h + +%if 0 +%files -n %{?_scl_prefix}libgccjit-docs +%{_infodir}/libgccjit.info* +%doc rpm.doc/libgccjit-devel/* +%doc gcc/jit/docs/examples +%endif + +%files -n %{?_scl_prefix}plugin%{gcc_ver}-devel +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/gtype.state +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/include +%dir %{_prefix}/libexec/gcc +%dir %{_prefix}/libexec/gcc/%{gcc_target_platform} +%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} +%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/plugin + +%files gdb-plugin +%{_prefix}/%{_lib}/libcc1.so* +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcc1plugin.so* +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcp1plugin.so* +%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 + +* Sat Aug 24 2024 zhaoshujian - 14.2.1-3 +- [bugfix] Change libgomp, libfortran, libgcc_s, libitm, libatomic package path +- Add gcc-toolset-14 Readme + +* Thu Aug 22 2024 Hu, Lin - 14.2.1-2 +- [Backport] Backport fix prefetchi from gcc-14.3.0 + +* Mon Aug 12 2024 zhaoshujian - 14.2.1-1 +- Init gcc toolset gcc 14.2.1 + +