Fix compilation on RISC-V

Use 32-bit manglings in the libstdc++ nonshared .hidden list (fixes i686)

Do not assert .hidden on _M_release_last_use_cold, which is not emitted on riscv64

Do not assert .hidden on a libstdc++ instantiation that is not emitted below x86-64-v3 (fixes x86_64_v2)

Do not assert .hidden on _Sp_counted_ptr<nullptr_t>::_M_dispose, which is not emitted on riscv64

Do not assert .hidden on _Sp_counted_base<_S_atomic>::_M_destroy, which is not emitted on riscv64

Do not assert .hidden on __to_chars_10_impl<unsigned long>, which is not emitted on riscv64

Set --with-arch_64=x86-64-v2 on v2 arch
This commit is contained in:
Eduard Abdullin 2026-08-25 04:43:53 +00:00 committed by root
commit 289bb37699
8 changed files with 478 additions and 36 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
/gcc-16.1.1-20260703.tar.xz
/gcc-16.2.1-20260807.tar.xz

View File

@ -15,13 +15,13 @@ BuildRequires: gcc-toolset-%{gts_ver}-devel
%{?scl:%global __strip %%{_scl_root}/usr/bin/strip}
%{?scl:%global __objdump %%{_scl_root}/usr/bin/objdump}
%{?scl:%scl_package gcc}
%global DATE 20260703
%global gitrev aac23a76ffc9b3a5bd8fcf07ead7c5249f91c457
%global gcc_version 16.1.1
%global DATE 20260807
%global gitrev 25040fb60e95bc8cb8eaa4b6706bd32591d95e7a
%global gcc_version 16.2.1
%global gcc_major 16
# Note, gcc_release must be integer, if you want to add suffixes to
# %%{release}, append them after %%{gcc_release} on Release: line.
%global gcc_release 4
%global gcc_release 1
%global nvptx_tools_gitrev 212da2e781ed0f9423824e85eb04819958513f7a
%global newlib_cygwin_gitrev d35cc82b5ec15bb8a5fe0fe11e183d1887992e99
%global isl_version 0.24
@ -177,10 +177,16 @@ BuildRequires: gcc-toolset-%{gts_ver}-devel
%else
%global build_annobin_plugin 0
%endif
%if 0%{?fedora} >= 32 || 0%{?rhel} > 8
%global build_libgdiagnostics 1
%else
# RHEL8 Sphinx is too old and this wouldn't build.
%global build_libgdiagnostics 0
%endif
Summary: GCC version %{gcc_major}
Name: %{?scl_prefix}gcc
Version: %{gcc_version}
Release: %{gcc_release}.1%{?dist}.alma.5
Release: %{gcc_release}%{?dist}.alma.1
# License notes for some of the less obvious ones:
# gcc/doc/cppinternals.texi: Linux-man-pages-copyleft-2-para
# isl: MIT, BSD-2-Clause
@ -367,6 +373,7 @@ Patch9: gcc16-Wno-format-security.patch
Patch10: gcc16-rh1574936.patch
Patch11: gcc16-d-shared-libphobos.patch
Patch12: gcc16-pr119006.patch
Patch13: gcc16-pr126667.patch
Patch50: isl-rh2155127.patch
@ -375,6 +382,7 @@ Patch100: gcc16-fortran-fdec-duplicates.patch
Patch1000: gcc16-libstdc++-compat.patch
Patch1001: gcc16-libgfortran-compat.patch
Patch1002: gcc16-nvptx-offload.patch
Patch1003: gcc16-libstdc++-compat-incremental.patch
Patch3000: 0001-basic_string-reserve-n-semantics-are-not-available-i.patch
Patch3001: 0004-operator-istream-char-N-eofbit-fixes-are-not-availab.patch
@ -393,6 +401,7 @@ Patch3014: gcc16-dg-ice-fixes.patch
Patch3015: 0018-Use-CXX11-ABI.patch
Patch3017: 0020-more-fixes.patch
Patch3018: 0021-libstdc++-disable-tests.patch
Patch3019: gcc16-RHEL-150603.patch
# AlmaLinux Patch
Patch9001: gcc16-riscv64-extfloat.patch
@ -748,6 +757,7 @@ so that there cannot be any synchronization problems.
%patch -P10 -p0 -b .rh1574936~
%patch -P11 -p0 -b .d-shared-libphobos~
%patch -P12 -p0 -b .pr119006~
%patch -P13 -p0 -b .pr126667~
%patch -P100 -p1 -b .fortran-fdec-duplicates~
@ -764,6 +774,7 @@ rm -f gcc/testsuite/g++.dg/tsan/pthread_cond_clockwait.C
%patch -P1000 -p0 -b .libstdc++-compat~
%patch -P1001 -p0 -b .libgfortran-compat~
%patch -P1002 -p1 -b .nvptx-compat~
%patch -P1003 -p0 -b .libstdc++-compat-inc~
%if %{build_isl}
%patch -P50 -p0 -b .isl-rh2155127~
@ -788,6 +799,7 @@ touch -r isl-0.24/m4/ax_prog_cxx_for_build.m4 isl-0.24/m4/ax_prog_cc_for_build.m
%patch -P3015 -p1 -b .dts-test-15~
%patch -P3017 -p1 -b .dts-test-17~
%patch -P3018 -p1 -b .dts-test-18~
%patch -P3019 -p1 -b .RHEL-150603~
# Applying AlmaLinux Patch
%patch -P9001 -p1 -b .gcc16-riscv64-extfloat
@ -1226,8 +1238,10 @@ done)
cp -p $i ../rpm.doc/libitm/$i.libitm
done)
%endif
%if %{build_libgdiagnostics}
(cd gcc/doc/libgdiagnostics; make html; \
mv _build/html ../../../rpm.doc/libgdiagnostics-devel/html )
%endif
rm -f rpm.doc/changelogs/gcc/ChangeLog.[1-9]
find rpm.doc -name \*ChangeLog\* | xargs bzip2 -9
@ -1551,10 +1565,12 @@ 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
%if %{build_libgdiagnostics}
rm -f $FULLEPATH/libgdiagnostics.so
cp -a objlibgccjit/gcc/libgdiagnostics.so* %{buildroot}%{_prefix}/%{_lib}/
cp -a ../gcc/libgdiagnostics*.h %{buildroot}%{_prefix}/include/
cp -a objlibgccjit/gcc/sarif-replay %{buildroot}%{_prefix}/bin/
%endif
sed -e 's,\.\./include/,../../../../include/,' \
%{buildroot}%{_prefix}/%{_lib}/libstdc++.modules.json \
@ -3024,6 +3040,7 @@ fi
%doc gcc/jit/docs/examples
%endif
%if %{build_libgdiagnostics}
%files -n libgdiagnostics
%{_prefix}/bin/sarif-replay
%{_prefix}/%{_lib}/libgdiagnostics.so.*
@ -3032,6 +3049,7 @@ fi
%{_prefix}/%{_lib}/libgdiagnostics.so
%{_prefix}/include/libgdiagnostics*.h
%doc rpm.doc/libgdiagnostics-devel/*
%endif
%files plugin-devel
%dir %{_prefix}/lib/gcc
@ -3079,7 +3097,7 @@ fi
%endif
%changelog
* Mon Aug 24 2026 Eduard Abdullin <eabdullin@almalinux.org> - 16.1.1-4.1.alma.5
* Tue Aug 25 2026 Eduard Abdullin <eabdullin@almalinux.org> - 16.2.1-1.alma.1
- Fix compilation on RISC-V
- Use 32-bit manglings in the libstdc++ nonshared .hidden list (fixes i686)
- Do not assert .hidden on _M_release_last_use_cold, which is not emitted on
@ -3094,6 +3112,56 @@ fi
emitted on riscv64
- Set --with-arch_64=x86-64-v2 on v2 arch
* Mon Aug 10 2026 Marek Polacek <polacek@redhat.com> 16.2.1-1
- update from releases/gcc-16 branch (RHEL-220994)
- GCC 16.2.0 release
- PRs ada/126379, ada/126482, ada/126553, algol68/126330, c/123569,
c/125072, c/125604, c/125935, c++/91155, c++/119343, c++/121552,
c++/125541, c++/125591, c++/125601, c++/125674, c++/125680,
c++/125901, c++/126007, c++/126031, c++/126036, c++/126057,
c++/126066, c++/126209, c++/126215, c++/126280, c++/126309,
c++/126310, c++/126343, c++/126406, c++/126420, c++/126423,
c++/126508, driver/124058, fortran/97592, fortran/125172,
fortran/125866, fortran/125998, fortran/126127, fortran/126170,
fortran/126210, fortran/126234, fortran/126303, fortran/126386,
ipa/124128, ipa/125121, ipa/125207, libfortran/126116, libgcc/123976,
libstdc++/122197, libstdc++/123165, libstdc++/124851,
libstdc++/124852, libstdc++/124853, libstdc++/124854,
libstdc++/125200, libstdc++/126111, lto/125257, middle-end/124637,
middle-end/125875, middle-end/126084, middle-end/126341,
middle-end/126405, middle-end/126410, middle-end/126447,
middle-end/126497, preprocessor/125048, rtl-optimization/125209,
rtl-optimization/126184, sanitizer/126307, target/67459, target/96446,
target/96530, target/96808, target/97360, target/98872, target/100777,
target/101849, target/102976, target/103127, target/104923,
target/105116, target/106016, target/106017, target/106833,
target/110411, target/119210, target/121957, target/122948,
target/123625, target/124364, target/124948, target/126049,
target/126054, target/126081, target/126098, target/126148,
target/126320, target/126429, target/126438, target/126446,
target/126450, target/126484, target/126581, testsuite/112728,
testsuite/118407, testsuite/124043, testsuite/124112,
testsuite/124361, testsuite/124726, testsuite/126261,
tree-optimization/120201, tree-optimization/124663,
tree-optimization/125040, tree-optimization/125290,
tree-optimization/125296, tree-optimization/125396,
tree-optimization/125597, tree-optimization/125668,
tree-optimization/125730, tree-optimization/125786,
tree-optimization/125953, tree-optimization/126008,
tree-optimization/126150, tree-optimization/126171,
tree-optimization/126194, tree-optimization/126225,
tree-optimization/126257, tree-optimization/126262,
tree-optimization/126404, tree-optimization/126457,
tree-optimization/126464, tree-optimization/126471,
tree-optimization/126476, tree-optimization/126490,
tree-optimization/126503, tree-optimization/126504,
tree-optimization/126547, tree-optimization/126549,
tree-optimization/126564, tree-optimization/126576,
tree-optimization/126601
- fix up s390x ICE on botan (PR target/126667)
- fix s390x libstdc++_nonshared symbols (RHEL-232912)
- always inline _M_extract_name
* Tue Jul 14 2026 Marek Polacek <polacek@redhat.com> 16.1.1-4.1
- fix gating problems
- fix asneeded libraries

27
gcc16-RHEL-150603.patch Normal file
View File

@ -0,0 +1,27 @@
diff -pruN a/libstdc++-v3/include/bits/locale_facets_nonio.tcc b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
--- a/libstdc++-v3/include/bits/locale_facets_nonio.tcc 2026-03-17 10:36:01.834877106 -0400
+++ b/libstdc++-v3/include/bits/locale_facets_nonio.tcc 2026-03-17 10:50:39.810318497 -0400
@@ -1040,6 +1040,7 @@ _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11
}
template<typename _CharT, typename _InIter>
+ [[__gnu__::__always_inline__]] inline
_InIter
time_get<_CharT, _InIter>::
_M_extract_via_format(iter_type __beg, iter_type __end, ios_base& __io,
@@ -1052,6 +1053,7 @@ _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11
}
template<typename _CharT, typename _InIter>
+ [[__gnu__::__always_inline__]] inline
_InIter
time_get<_CharT, _InIter>::
_M_extract_num(iter_type __beg, iter_type __end, int& __member,
@@ -1089,6 +1091,7 @@ _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11
// __names in the second half (May is abbreviated as May). Some __names
// elements could be prefixes of other __names elements.
template<typename _CharT, typename _InIter>
+ [[__gnu__::__always_inline__]] inline
_InIter
time_get<_CharT, _InIter>::
_M_extract_name(iter_type __beg, iter_type __end, int& __member,

View File

@ -0,0 +1,219 @@
--- libstdc++-v3/src/nonshared98/extfloat.S.jj 2026-08-05 17:04:25.222489107 +0200
+++ libstdc++-v3/src/nonshared98/extfloat.S 2026-08-05 17:07:06.027857743 +0200
@@ -106,7 +106,7 @@
#define STRING .string
#endif
-#if defined __x86_64__ || defined __i386__ || defined __aarch64__
+#if defined __x86_64__ || defined __i386__ || defined __aarch64__ || defined __s390x__
.weak SYM(_ZTIPKDF16_)
SECTION1(_ZTIPKDF16_)
ALIGN1
--- libstdc++-v3/src/nonshared98/extfloat140.S.jj 2026-08-05 17:07:19.813692552 +0200
+++ libstdc++-v3/src/nonshared98/extfloat140.S 2026-08-05 17:08:06.441133827 +0200
@@ -0,0 +1,165 @@
+/* Copyright (C) 2012-2026 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
+ <http://www.gnu.org/licenses/>. */
+
+#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 __s390x__
+ .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
+ .section .note.GNU-stack,"",@progbits
--- libstdc++-v3/src/nonshared98/Makefile.am.jj 2026-08-05 17:04:25.222836129 +0200
+++ libstdc++-v3/src/nonshared98/Makefile.am 2026-08-05 17:08:35.235788792 +0200
@@ -44,7 +44,7 @@ sources80 = \
char8_t-rtti.S \
ios_failure.cc
sources110 =
-sources140 =
+sources140 = extfloat140.S
vpath % $(top_srcdir)/src/nonshared98
vpath % $(top_srcdir)
--- libstdc++-v3/src/nonshared98/Makefile.in.jj 2026-08-05 17:04:25.222951026 +0200
+++ libstdc++-v3/src/nonshared98/Makefile.in 2026-08-05 17:08:58.493735245 +0200
@@ -134,13 +134,14 @@ am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 =
libnonshared98convenience140_la_LIBADD =
-am_libnonshared98convenience140_la_OBJECTS = $(am__objects_2)
+am__objects_3 = extfloat140.lo
+am_libnonshared98convenience140_la_OBJECTS = $(am__objects_3)
libnonshared98convenience140_la_OBJECTS = \
$(am_libnonshared98convenience140_la_OBJECTS)
libnonshared98convenience80_la_LIBADD =
-am__objects_3 = char8_t-rtti.lo ios_failure.lo
+am__objects_4 = char8_t-rtti.lo ios_failure.lo
am_libnonshared98convenience80_la_OBJECTS = $(am__objects_1) \
- $(am__objects_3)
+ $(am__objects_4)
libnonshared98convenience80_la_OBJECTS = \
$(am_libnonshared98convenience80_la_OBJECTS)
AM_V_P = $(am__v_P_@AM_V@)
@@ -493,7 +494,7 @@ sources80 = \
ios_failure.cc
sources110 =
-sources140 =
+sources140 = extfloat140.S
libnonshared98convenience80_la_SOURCES = $(sources) $(sources80)
libnonshared98convenience110_la_SOURCES = $(sources) $(sources110)
libnonshared98convenience140_la_SOURCES = $(sources140)

View File

@ -5353,6 +5353,72 @@
+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");
--- libstdc++-v3/src/nonshared20/tzdb140.cc.jj 2026-05-27 14:24:38.182663933 +0200
+++ libstdc++-v3/src/nonshared20/tzdb140.cc 2026-05-29 13:49:44.515616477 +0200
@@ -0,0 +1,63 @@
+// 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
+// <http://www.gnu.org/licenses/>.
+
+#define _GLIBCXX_NONSHARED_CXX11_140
+#include "tzdb80.cc"
+asm (".hidden _ZNKSt5ctypeIcE8do_widenEc");
+asm (".hidden _ZNKSt6chrono4tzdb11locate_zoneESt17basic_string_viewIcSt11char_traitsIcEE");
+asm (".hidden _ZNKSt6chrono4tzdb12current_zoneEv");
+asm (".hidden _ZNKSt6chrono9time_zone15_M_get_sys_infoENS_10time_pointINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1EEEEEE");
+asm (".hidden _ZNKSt6chrono9time_zone17_M_get_local_infoENS_10time_pointINS_7local_tENS_8durationIlSt5ratioILl1ELl1EEEEEE");
+asm (".hidden _ZNKSt6chrono9tzdb_list14const_iteratordeEv");
+asm (".hidden _ZNKSt6chrono9tzdb_list5beginEv");
+asm (".hidden _ZNKSt6chrono9tzdb_list5frontEv");
+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 _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv");
+asm (".hidden _ZNSt6chrono11locate_zoneESt17basic_string_viewIcSt11char_traitsIcEE");
+asm (".hidden _ZNSt6chrono11reload_tzdbEv");
+asm (".hidden _ZNSt6chrono12current_zoneEv");
+asm (".hidden _ZNSt6chrono13get_tzdb_listEv");
+asm (".hidden _ZNSt6chrono14remote_versionB5cxx11Ev");
+asm (".hidden _ZNSt6chrono8get_tzdbEv");
+asm (".hidden _ZNSt6chrono9tzdb_list11erase_afterENS0_14const_iteratorE");
+asm (".hidden _ZNSt6chrono9tzdb_list14const_iteratorppEi");
+asm (".hidden _ZNSt6chrono9tzdb_list14const_iteratorppEv");
+asm (".hidden _ZNSt6chrono9tzdb_list5_Node11fixed_leapsE");
+asm (".hidden _ZNSt6chrono9tzdb_list5_Node16num_leap_secondsE");
+#if defined(__x86_64__) || defined(__aarch64__) || defined(__powerpc64__)
+asm (".hidden _ZNSt6ranges8__detail13__heap_selectIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS5_SaIS5_EEEENS0_10_Comp_projINS_4lessEMS5_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEEEvT_SK_SK_T0_");
+#endif
+#if defined(__s390x__)
+asm (".hidden _ZNSt6ranges8__detail14__partial_sortIN9__gnu_cxx17__normal_iteratorIPNSt6chrono9time_zoneESt6vectorIS5_SaIS5_EEEENS0_10_Comp_projINS_4lessEMS5_KDoFSt17basic_string_viewIcSt11char_traitsIcEEvEEEEEvT_SK_SK_T0_");
+#endif
+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_assignERKS4_");
+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_");
+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_");
+asm (".hidden _ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE");
+asm (".hidden _ZTISt16_Sp_counted_baseILN9__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 _ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag");
+asm (".hidden _ZGVNSt8__format11_ChronoDataIcE7_S_argsE");
--- libstdc++-v3/src/nonshared20/sstream-inst80.cc.jj 2026-05-27 14:24:38.182736120 +0200
+++ libstdc++-v3/src/nonshared20/sstream-inst80.cc 2026-05-29 13:49:44.515616477 +0200
@@ -0,0 +1,34 @@
@ -5392,7 +5458,7 @@
+//asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_mutateEmmPKwm");
--- libstdc++-v3/src/nonshared20/Makefile.am.jj 2026-05-27 14:24:38.182822857 +0200
+++ libstdc++-v3/src/nonshared20/Makefile.am 2026-05-29 12:21:39.197030181 +0200
@@ -0,0 +1,140 @@
@@ -0,0 +1,144 @@
+## Makefile for the C++20 sources of the GNU C++ Standard library.
+##
+## Copyright (C) 1997-2026 Free Software Foundation, Inc.
@ -5437,7 +5503,7 @@
+sources = atomic.cc clock.cc syncbuf.cc
+sources80 = format.cc tzdb80.cc $(sources)
+sources110 = format.cc tzdb110.cc $(sources)
+sources140 = format140.cc $(sources)
+sources140 = format140.cc tzdb140.cc $(sources)
+
+vpath % $(top_srcdir)/src/nonshared20
+
@ -5456,6 +5522,10 @@
+ $(LTCXXCOMPILE) -I. -c $<
+tzdb110.o: tzdb110.cc tzdata.zi.h
+ $(CXXCOMPILE) -I. -c $<
+tzdb140.lo: tzdb140.cc tzdata.zi.h
+ $(LTCXXCOMPILE) -I. -c $<
+tzdb140.o: tzdb140.cc tzdata.zi.h
+ $(CXXCOMPILE) -I. -c $<
+endif
+
+# This needs access to std::text_encoding and to the internals of std::locale.
@ -5711,7 +5781,7 @@
+asm (".hidden _ZNSt8__detail31__from_chars_alnum_to_val_tableILb0EE5valueE");
--- libstdc++-v3/src/nonshared20/Makefile.in.jj 2026-05-27 14:24:38.183178662 +0200
+++ libstdc++-v3/src/nonshared20/Makefile.in 2026-05-29 12:29:43.479566389 +0200
@@ -0,0 +1,810 @@
@@ -0,0 +1,814 @@
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# @configure_input@
+
@ -5850,7 +5920,7 @@
+am__v_lt_0 = --silent
+am__v_lt_1 =
+libnonshared20convenience140_la_LIBADD =
+am__objects_4 = format140.lo $(am__objects_1)
+am__objects_4 = format140.lo tzdb140.lo $(am__objects_1)
+am_libnonshared20convenience140_la_OBJECTS = $(am__objects_4) \
+ $(am__objects_3)
+libnonshared20convenience140_la_OBJECTS = \
@ -6175,7 +6245,7 @@
+sources = atomic.cc clock.cc syncbuf.cc
+sources80 = format.cc tzdb80.cc $(sources)
+sources110 = format.cc tzdb110.cc $(sources)
+sources140 = format140.cc $(sources)
+sources140 = format140.cc tzdb140.cc $(sources)
+libnonshared20convenience80_la_SOURCES = $(sources80) $(inst_sources80) $(inst_sources)
+libnonshared20convenience110_la_SOURCES = $(sources110) $(inst_sources)
+libnonshared20convenience140_la_SOURCES = $(sources140) $(inst_sources)
@ -6508,6 +6578,10 @@
+@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 $<
+@USE_STATIC_TZDATA_TRUE@tzdb140.lo: tzdb140.cc tzdata.zi.h
+@USE_STATIC_TZDATA_TRUE@ $(LTCXXCOMPILE) -I. -c $<
+@USE_STATIC_TZDATA_TRUE@tzdb140.o: tzdb140.cc tzdata.zi.h
+@USE_STATIC_TZDATA_TRUE@ $(CXXCOMPILE) -I. -c $<
+
+# This needs access to std::text_encoding and to the internals of std::locale.
+format.lo: format.cc
@ -6656,7 +6730,7 @@
+#endif
--- libstdc++-v3/src/nonshared20/clock.cc.jj 2026-05-28 17:33:50.173914672 +0200
+++ libstdc++-v3/src/nonshared20/clock.cc 2026-05-29 14:27:00.177282199 +0200
@@ -0,0 +1,40 @@
@@ -0,0 +1,41 @@
+// std::chrono::tai_clock, gps_clock
+
+// Copyright (C) 2021-2026 Free Software Foundation, Inc.
@ -6687,14 +6761,15 @@
+// P0355R7
+
+#include "../c++20/clock.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 _ZNSt15_Sp_counted_ptrIDnLN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv");
+//asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv");
+#ifndef __i386__
+asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv");
+//asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv");
+#endif
+#if defined(__i386__) || (defined(__powerpc__) && !defined(__powerpc64__))
+asm (".hidden _ZNSt6chrono8__detail22__get_leap_second_infoENS_10time_pointINS_3_V212system_clockENS_8durationIxSt5ratioILx1ELx1EEEEEEb");
+#else
+#endif
+#ifdef __x86_64__
+asm (".hidden _ZNSt6chrono8__detail22__get_leap_second_infoENS_10time_pointINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1EEEEEEb");
+#endif
--- libstdc++-v3/src/nonshared20/syncbuf.cc.jj 2026-05-29 11:33:27.293719312 +0200
@ -6727,7 +6802,7 @@
+#include "../c++20/syncbuf.cc"
--- libstdc++-v3/src/nonshared20/format-inst.cc.jj 2026-05-29 12:21:56.785794864 +0200
+++ libstdc++-v3/src/nonshared20/format-inst.cc 2026-05-29 15:47:17.971961538 +0200
@@ -0,0 +1,232 @@
@@ -0,0 +1,237 @@
+// Definitions for <format> -*- C++ -*-
+
+// Copyright The GNU Toolchain Authors.
@ -6755,13 +6830,17 @@
+#include "../c++20/format-inst.cc"
+#if defined(__x86_64__) || defined(__aarch64__) || defined(__powerpc64__)
+asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEOS4_");
+asm (".hidden _ZNSt8__detail13__to_chars_16ImEESt15to_chars_resultPcS2_T_");
+asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE22__resize_and_overwriteIZNKSt8__format14__formatter_fpIwE11_M_localizeESt17basic_string_viewIwS2_EciRKSt6localeEUlPwmE_EEvmT_");
+#else
+asm (".hidden _ZNSt8__detail18__to_chars_10_implImEEvPcjT_");
+#endif
+#if defined(__x86_64__)
+asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE22__resize_and_overwriteIZNKSt8__format14__formatter_fpIwE11_M_localizeESt17basic_string_viewIwS2_EcRKSt6localeEUlPwmE_EEvmT_");
+asm (".hidden _ZNSt8__format15__parse_integerIwEESt4pairItPKT_ES4_S4_");
+asm (".hidden _ZNSt8__detail13__to_chars_16ImEESt15to_chars_resultPcS2_T_");
+//asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE22__resize_and_overwriteIZNKSt8__format14__formatter_fpIwE11_M_localizeESt17basic_string_viewIwS2_EcRKSt6localeEUlPwmE_EEvmT_");
+asm (".hidden _ZNSt8__detail13__to_chars_16IjEESt15to_chars_resultPcS2_T_");
+asm (".hidden _ZNKSt8__format15__formatter_strIcE6formatINS_10_Sink_iterIcEEEET_St17basic_string_viewIcSt11char_traitsIcEERSt20basic_format_contextIS5_cE");
+asm (".hidden _ZNKSt8__format15__formatter_strIwE6formatINS_10_Sink_iterIwEEEET_St17basic_string_viewIwSt11char_traitsIwEERSt20basic_format_contextIS5_wE");
+#endif
+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv");
+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_replace_coldEPcmPKcmm");
@ -6793,20 +6872,21 @@
+asm (".hidden _ZNSt8__format29__failed_to_parse_format_specEv");
+asm (".hidden _ZNSt8__detail18__to_chars_10_implIjEEvPcjT_");
+asm (".hidden _ZNSt8__detail18__to_chars_10_implIyEEvPcjT_");
+asm (".hidden _ZNSt16basic_format_argISt20basic_format_contextINSt8__format10_Sink_iterIcEEcEE8_M_visitIZNS1_15__do_vformat_toIcLj1EEENS2_IT_EES9_St17basic_string_viewIS8_St11char_traitsIS8_EERS0_IS9_S8_EEUlRS8_E_EEDcOS8_NS1_6_Arg_tE");
+//asm (".hidden _ZNSt16basic_format_argISt20basic_format_contextINSt8__format10_Sink_iterIcEEcEE8_M_visitIZNS1_15__do_vformat_toIcLj1EEENS2_IT_EES9_St17basic_string_viewIS8_St11char_traitsIS8_EERS0_IS9_S8_EEUlRS8_E_EEDcOS8_NS1_6_Arg_tE");
+asm (".hidden _ZNSt16basic_format_argISt20basic_format_contextINSt8__format10_Sink_iterIcEEcEE8_M_visitIZNS1_15__do_vformat_toIcLj1EEENS2_IT_EES9_St17basic_string_viewIS8_St11char_traitsIS8_EERS0_IS9_S8_EEUlRS8_E_EEDcOS8_");
+asm (".hidden _ZNSt8__format5_SpecIwE27_S_parse_width_or_precisionEPKwS3_RtRbRSt26basic_format_parse_contextIwE");
+asm (".hidden _ZNSt8__format5_SpecIwE14_M_parse_widthEPKwS3_RSt26basic_format_parse_contextIwE");
+asm (".hidden _ZNSt8__format15__formatter_intIwE11_M_do_parseERSt26basic_format_parse_contextIwENS_10_Pres_typeE");
+asm (".hidden _ZNSt8__format14__formatter_fpIwE5parseERSt26basic_format_parse_contextIwE");
+asm (".hidden _ZNSt8__format15__formatter_strIwE5parseERSt26basic_format_parse_contextIwE");
+asm (".hidden _ZNSt8__format15__formatter_ptrIwE5parseERSt26basic_format_parse_contextIwENS_10_Pres_typeE");
+asm (".hidden _ZNSt8__format15__formatter_ptrIwE5parseERSt26basic_format_parse_contextIwE");
+asm (".hidden _ZNSt8__format5_SinkIcE8_M_writeESt17basic_string_viewIcSt11char_traitsIcEE");
+asm (".hidden _ZNSt8__format19_Formatting_scannerINS_10_Sink_iterIcEEcE11_M_on_charsEPKc");
+//asm (".hidden _ZNSt8__format5_SinkIwE8_M_writeEw");
+asm (".hidden _ZNSt8__format5_SpecIcE27_S_parse_width_or_precisionEPKcS3_RtRbRSt26basic_format_parse_contextIcE");
+asm (".hidden _ZNSt8__format14__formatter_fpIcE5parseERSt26basic_format_parse_contextIcE");
+asm (".hidden _ZNSt8__format15__formatter_strIcE5parseERSt26basic_format_parse_contextIcE");
+asm (".hidden _ZNSt8__format15__formatter_ptrIcE5parseERSt26basic_format_parse_contextIcENS_10_Pres_typeE");
+asm (".hidden _ZNSt8__format15__formatter_ptrIcE5parseERSt26basic_format_parse_contextIcE");
+asm (".hidden _ZNSt8__format15__formatter_intIcE11_M_do_parseERSt26basic_format_parse_contextIcENS_10_Pres_typeE");
+//asm (".hidden _ZNSt8__format5_SinkIcE8_M_writeEc");
+asm (".hidden _ZNKSt8__format14__formatter_fpIcE6formatIfNS_10_Sink_iterIcEEEENSt20basic_format_contextIT0_cE8iteratorET_RS7_");
@ -6932,9 +7012,10 @@
+asm (".hidden _ZNKSt8__format15__formatter_intIwE6formatImNS_10_Sink_iterIwEEEENSt20basic_format_contextIT0_wE8iteratorET_RS7_");
+asm (".hidden _ZNKSt8__format15__formatter_intIwE6formatInNS_10_Sink_iterIwEEEENSt20basic_format_contextIT0_wE8iteratorET_RS7_");
+asm (".hidden _ZNKSt8__format15__formatter_intIwE6formatIoNS_10_Sink_iterIwEEEENSt20basic_format_contextIT0_wE8iteratorET_RS7_");
+asm (".hidden _ZNSt16basic_format_argISt20basic_format_contextINSt8__format10_Sink_iterIcEEcEE8_M_visitIZNS1_19_Formatting_scannerIS3_cE13_M_format_argEmEUlRT_E_EEDcOS9_NS1_6_Arg_tE");
+asm (".hidden _ZNSt16basic_format_argISt20basic_format_contextINSt8__format10_Sink_iterIwEEwEE8_M_visitIZNS1_19_Formatting_scannerIS3_wE13_M_format_argEmEUlRT_E_EEDcOS9_NS1_6_Arg_tE");
+//asm (".hidden _ZNSt16basic_format_argISt20basic_format_contextINSt8__format10_Sink_iterIcEEcEE8_M_visitIZNS1_19_Formatting_scannerIS3_cE13_M_format_argEmEUlRT_E_EEDcOS9_NS1_6_Arg_tE");
+asm (".hidden _ZNSt16basic_format_argISt20basic_format_contextINSt8__format10_Sink_iterIwEEwEE8_M_visitIZNS1_19_Formatting_scannerIS3_wE13_M_format_argEmEUlRT_E_EEDcOS9_");
+//asm (".hidden _ZNSt8__detail13__to_chars_16ImEESt15to_chars_resultPcS2_T_");
+asm (".hidden _ZNSt16basic_format_argISt20basic_format_contextINSt8__format10_Sink_iterIcEEcEE8_M_visitIZNS1_19_Formatting_scannerIS3_cE13_M_format_argEmEUlRT_E_EEDcOS9_");
+asm (".hidden _ZNSt8__detail18__to_chars_10_implIoEEvPcjT_");
+asm (".hidden _ZNSt8__format10__truncateIcEEmRSt17basic_string_viewIT_St11char_traitsIS2_EEm");
+asm (".hidden _ZNSt8__format10__truncateIwEEmRSt17basic_string_viewIT_St11char_traitsIS2_EEm");
@ -6944,7 +7025,6 @@
+asm (".hidden _ZNSt8__format13_Padding_sinkINS_10_Sink_iterIwEEwE7_M_bumpEm");
+asm (".hidden _ZNSt8__format14__write_paddedINS_10_Sink_iterIcEEcEET_S3_St17basic_string_viewIT0_St11char_traitsIS5_EENS_6_AlignEmDi");
+asm (".hidden _ZNSt8__format14__write_paddedINS_10_Sink_iterIwEEwEET_S3_St17basic_string_viewIT0_St11char_traitsIS5_EENS_6_AlignEmDi");
+//asm (".hidden _ZNSt8__format15__parse_integerIwEESt4pairItPKT_ES4_S4_");
+asm (".hidden _ZNSt8__format19_Formatting_scannerINS_10_Sink_iterIcEEcE13_M_format_argEm");
+asm (".hidden _ZNSt8__format19_Formatting_scannerINS_10_Sink_iterIwEEwE13_M_format_argEm");
+asm (".hidden _ZNSt8__format22__write_padded_as_specIcNS_10_Sink_iterIcEEEET0_St17basic_string_viewINSt13type_identityIT_E4typeESt11char_traitsIS8_EEmRSt20basic_format_contextIS3_S6_ERKNS_5_SpecIS6_EENS_6_AlignE");
@ -8981,8 +9061,8 @@
+// <http://www.gnu.org/licenses/>.
+
+#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 _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_");
@ -9008,7 +9088,7 @@
+//asm (".hidden _ZNSs6resizeEmc");
+//asm (".hidden _ZNSt10filesystem4pathD1Ev");
+//asm (".hidden _ZNSt10filesystem4pathD2Ev");
+asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv");
+//asm (".hidden _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_");
@ -9203,7 +9283,7 @@
+//asm (".hidden _ZNSt10filesystem4path5_List5beginEv");
+//asm (".hidden _ZNSt10filesystem4path7_Parser4nextEv");
+#ifndef __i386__
+asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv");
+//asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv");
+//asm (".hidden _ZSt16__do_str_codecvtISbIwSt11char_traitsIwESaIwEEcSt7codecvtIwc11__mbstate_tES5_MS6_KFNSt12codecvt_base6resultERS5_PKcSB_RSB_PwSD_RSD_EEbPKT0_SJ_RT_RKT1_RT2_RmT3_");
+//asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE6resizeEmw");
+//asm (".hidden _ZNSs7reserveEm");
@ -9419,7 +9499,7 @@
+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 _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");
@ -9465,8 +9545,8 @@
+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 _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_");
@ -9802,7 +9882,7 @@
+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");
+//asm (".hidden _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv");
+#endif
+#ifndef __powerpc64__
+asm (".hidden _ZNSt10unique_ptrINSt10filesystem4path5_List5_ImplENS2_13_Impl_deleterEED1Ev");

View File

@ -4,7 +4,7 @@
<a class="link" href="https://www.fsf.org" target="_top">FSF
</a>
</p><p>
+ Release 16.1.1
+ Release 16.2.1
+ </p><p>
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation
@ -17,7 +17,7 @@
</p><p>
- The API documentation, rendered into HTML, can be viewed online
+ The API documentation, rendered into HTML, can be viewed locally
+ <a class="link" href="api/index.html" target="_top">for the 16.1.1 release</a>,
+ <a class="link" href="api/index.html" target="_top">for the 16.2.1 release</a>,
+ online
<a class="link" href="https://gcc.gnu.org/onlinedocs/" target="_top">for each GCC release</a>
and

47
gcc16-pr126667.patch Normal file
View File

@ -0,0 +1,47 @@
2026-08-06 Jakub Jelinek <jakub@redhat.com>
PR target/126667
* config/s390/s390.md (usubc<mode>5): If operands[4] is
an immediate operand other than const0_rtx, force it into reg
before using it in xor<mode>3 insn.
* gcc.dg/pr126667.c: New test.
* gcc.target/s390/pr126667.c: New test.
--- gcc/config/s390/s390.md.jj 2026-08-06 10:24:00.121415450 +0200
+++ gcc/config/s390/s390.md 2026-08-06 13:36:37.344210259 +0200
@@ -6745,7 +6745,9 @@ (define_expand "usubc<mode>5"
else
{
rtx tmp = gen_reg_rtx (<MODE>mode);
- emit_insn (gen_xor<mode>3 (tmp, operands[4], const1_rtx));
+ emit_insn (gen_xor<mode>3 (tmp, CONSTANT_P (operands[4])
+ ? force_reg (<MODE>mode, operands[4])
+ : operands[4], const1_rtx));
rtx slb_cond = s390_emit_compare (<MODE>mode, LEU, tmp, const0_rtx);
emit_insn (gen_sub<mode>3_slb_borrow1_cc (operands[0], operands[2], operands[3], slb_cond));
}
--- gcc/testsuite/gcc.dg/pr126667.c.jj 2026-08-06 13:37:24.743970575 +0200
+++ gcc/testsuite/gcc.dg/pr126667.c 2026-08-06 13:37:18.352048196 +0200
@@ -0,0 +1,9 @@
+/* PR target/126667 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+unsigned long
+foo (unsigned long x, unsigned long y, unsigned long *p)
+{
+ return __builtin_subcl (x, y, 1UL, p);
+}
--- gcc/testsuite/gcc.target/s390/pr126667.c.jj 2026-08-06 13:37:50.592656684 +0200
+++ gcc/testsuite/gcc.target/s390/pr126667.c 2026-08-06 13:38:11.096407697 +0200
@@ -0,0 +1,9 @@
+/* PR target/126667 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -march=z14" } */
+
+unsigned long
+foo (unsigned long x, unsigned long y, unsigned long *p)
+{
+ return __builtin_subcl (x, y, 1UL, p);
+}

View File

@ -1,4 +1,4 @@
SHA512 (gcc-16.1.1-20260703.tar.xz) = a1a3d9f260d2e34004b060b622de276968dc4b5d68e78c7c4990dccd83001a2117457f2d86fdb4f71711b4dc072ee584f2c313557233348664dfa521bc3768f3
SHA512 (gcc-16.2.1-20260807.tar.xz) = 5bb60a3172a7c2bfe8723e683b3621f8faabe97e1d5b4ef716e63e9a6e92e16870881661d14eb085af5d4bfe72f0a6b3f866479c9d7133957c0b15d78b35bd19
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
SHA512 (newlib-cygwin-d35cc82b5ec15bb8a5fe0fe11e183d1887992e99.tar.xz) = ef9495745a96d1d76f9f425c4a48c807fface36a1aa92351c5d024103678d144d046e8de55d195103784472c14874e29e4b9284d5d6a2e7bb27fd98c8455a881
SHA512 (nvptx-tools-212da2e781ed0f9423824e85eb04819958513f7a.tar.xz) = 5a5509b0513843254ee2be277e0b8d4733f643b74b98c739e82872181a2c366b9b43de9e5fb505aa1e9967a382da59cab015f63011cbcb5972971f2160870f00