From 0e410e961f1bd759fb8e87e4db6ba111edde5fee Mon Sep 17 00:00:00 2001
From: Marek Polacek
Date: Tue, 11 Aug 2026 11:18:05 -0400
Subject: [PATCH] 16.2.1-1
Resolves: RHEL-169581
---
.gitignore | 1 +
gcc-toolset-16-gcc.spec | 78 +++++++-
gcc16-RHEL-150603.patch | 27 +++
gcc16-libstdc++-compat-incremental.patch | 219 +++++++++++++++++++++++
gcc16-libstdc++-compat.patch | 134 +++++++++++---
gcc16-libstdc++-docs.patch | 4 +-
gcc16-pr126667.patch | 47 +++++
sources | 2 +-
8 files changed, 477 insertions(+), 35 deletions(-)
create mode 100644 gcc16-RHEL-150603.patch
create mode 100644 gcc16-libstdc++-compat-incremental.patch
create mode 100644 gcc16-pr126667.patch
diff --git a/.gitignore b/.gitignore
index 3444aa5..f0a4e2b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
/gcc-16.1.1-20260703.tar.xz
+/gcc-16.2.1-20260807.tar.xz
diff --git a/gcc-toolset-16-gcc.spec b/gcc-toolset-16-gcc.spec
index dd146c8..30aa29d 100644
--- a/gcc-toolset-16-gcc.spec
+++ b/gcc-toolset-16-gcc.spec
@@ -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}
+Release: %{gcc_release}%{?dist}
# 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
%if 0%{?rhel} == 10
%global nonsharedver 140
@@ -744,6 +753,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~
@@ -760,6 +770,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~
@@ -784,6 +795,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~
find gcc/testsuite -name \*.pr96939~ | xargs rm -f
@@ -1214,8 +1226,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
@@ -1539,10 +1553,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 \
@@ -3012,6 +3028,7 @@ fi
%doc gcc/jit/docs/examples
%endif
+%if %{build_libgdiagnostics}
%files -n libgdiagnostics
%{_prefix}/bin/sarif-replay
%{_prefix}/%{_lib}/libgdiagnostics.so.*
@@ -3020,6 +3037,7 @@ fi
%{_prefix}/%{_lib}/libgdiagnostics.so
%{_prefix}/include/libgdiagnostics*.h
%doc rpm.doc/libgdiagnostics-devel/*
+%endif
%files plugin-devel
%dir %{_prefix}/lib/gcc
@@ -3067,6 +3085,56 @@ fi
%endif
%changelog
+* Mon Aug 10 2026 Marek Polacek 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 16.1.1-4.1
- fix gating problems
- fix asneeded libraries
diff --git a/gcc16-RHEL-150603.patch b/gcc16-RHEL-150603.patch
new file mode 100644
index 0000000..aa1c483
--- /dev/null
+++ b/gcc16-RHEL-150603.patch
@@ -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
++ [[__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
++ [[__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
++ [[__gnu__::__always_inline__]] inline
+ _InIter
+ time_get<_CharT, _InIter>::
+ _M_extract_name(iter_type __beg, iter_type __end, int& __member,
diff --git a/gcc16-libstdc++-compat-incremental.patch b/gcc16-libstdc++-compat-incremental.patch
new file mode 100644
index 0000000..a5cd3cf
--- /dev/null
+++ b/gcc16-libstdc++-compat-incremental.patch
@@ -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
++ . */
++
++#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)
diff --git a/gcc16-libstdc++-compat.patch b/gcc16-libstdc++-compat.patch
index e223d9a..1d4dcfe 100644
--- a/gcc16-libstdc++-compat.patch
+++ b/gcc16-libstdc++-compat.patch
@@ -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
++// .
++
++#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 -*- 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 @@
+// .
+
+#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");
diff --git a/gcc16-libstdc++-docs.patch b/gcc16-libstdc++-docs.patch
index f971627..65f5a03 100644
--- a/gcc16-libstdc++-docs.patch
+++ b/gcc16-libstdc++-docs.patch
@@ -4,7 +4,7 @@
FSF
-+ Release 16.1.1
++ Release 16.2.1
+
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation
@@ -17,7 +17,7 @@
- The API documentation, rendered into HTML, can be viewed online
+ The API documentation, rendered into HTML, can be viewed locally
-+ for the 16.1.1 release,
++ for the 16.2.1 release,
+ online
for each GCC release
and
diff --git a/gcc16-pr126667.patch b/gcc16-pr126667.patch
new file mode 100644
index 0000000..f7548f6
--- /dev/null
+++ b/gcc16-pr126667.patch
@@ -0,0 +1,47 @@
+2026-08-06 Jakub Jelinek
+
+ PR target/126667
+ * config/s390/s390.md (usubc5): If operands[4] is
+ an immediate operand other than const0_rtx, force it into reg
+ before using it in xor3 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 "usubc5"
+ else
+ {
+ rtx tmp = gen_reg_rtx (mode);
+- emit_insn (gen_xor3 (tmp, operands[4], const1_rtx));
++ emit_insn (gen_xor3 (tmp, CONSTANT_P (operands[4])
++ ? force_reg (mode, operands[4])
++ : operands[4], const1_rtx));
+ rtx slb_cond = s390_emit_compare (mode, LEU, tmp, const0_rtx);
+ emit_insn (gen_sub3_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);
++}
diff --git a/sources b/sources
index 486241a..6571421 100644
--- a/sources
+++ b/sources
@@ -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