From d818c7e53a93efe1693708367fce1a980d674501 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Thu, 25 Apr 2024 12:16:50 +0200
Subject: [PATCH 01/41] Small tweaks.
---
gcc.spec | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/gcc.spec b/gcc.spec
index c0b423c..95e5f0d 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1206,7 +1206,11 @@ CONFIGURE_OPTS="\
%endif
%ifarch x86_64
%if 0%{?rhel} > 8
+%if 0%{?rhel} > 9
+ --with-arch_64=x86-64-v3 \
+%else
--with-arch_64=x86-64-v2 \
+%endif
%endif
--with-arch_32=x86-64 \
%endif
@@ -1564,12 +1568,10 @@ for f in `find %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_plat
done
# Nuke bits/*.h.gch dirs
-# 1) there is no bits/*.h header installed, so when gch file can't be
-# used, compilation fails
-# 2) sometimes it is hard to match the exact options used for building
+# 1) sometimes it is hard to match the exact options used for building
# libstdc++-v3 or they aren't desirable
-# 3) there are multilib issues, conflicts etc. with this
-# 4) it is huge
+# 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
@@ -1581,6 +1583,7 @@ 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/
+rm -f %{buildroot}%{_mandir}/man3/TEMP.*
find ../rpm.doc/libstdc++-v3 -name \*~ | xargs rm
%endif
@@ -3621,6 +3624,11 @@ end
%endif
%changelog
+* Thu Apr 25 2024 Jakub Jelinek
+- switch to --with-arch_64=x86-64-v3 for latest RHEL
+- remove obsolete reason for not shipping *.gch* files
+- remove TEMP.* man page from libstdc++-docs
+
* Thu Apr 11 2024 Jakub Jelinek 14.0.1-0.15
- update from trunk
- PRs analyzer/114472, c++/114303, c++/114409, debug/112878,
From 3b5d74755602d41d380538ae59c6f31bdfc6fdc6 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Thu, 25 Apr 2024 12:19:59 +0200
Subject: [PATCH 02/41] Fix last commit.
---
gcc.spec | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc.spec b/gcc.spec
index 95e5f0d..9b70f6f 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1583,7 +1583,7 @@ 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/
-rm -f %{buildroot}%{_mandir}/man3/TEMP.*
+rm -f %{buildroot}%{_mandir}/man3/TEMP*
find ../rpm.doc/libstdc++-v3 -name \*~ | xargs rm
%endif
@@ -3627,7 +3627,7 @@ end
* Thu Apr 25 2024 Jakub Jelinek
- switch to --with-arch_64=x86-64-v3 for latest RHEL
- remove obsolete reason for not shipping *.gch* files
-- remove TEMP.* man page from libstdc++-docs
+- remove TEMP* man page from libstdc++-docs
* Thu Apr 11 2024 Jakub Jelinek 14.0.1-0.15
- update from trunk
From e703f37eb87100895b435b9e214593b83fb72f0b Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Tue, 30 Apr 2024 13:32:03 +0200
Subject: [PATCH 03/41] 14.0.1-0.16
---
.gitignore | 2 ++
gcc.spec | 37 ++++++++++++++++++++++++++++++-------
sources | 4 ++--
3 files changed, 34 insertions(+), 9 deletions(-)
diff --git a/.gitignore b/.gitignore
index 5071b53..11d7539 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,3 +14,5 @@
/gcc-14.0.1-20240328.tar.xz
/gcc-14.0.1-20240410.tar.xz
/gcc-14.0.1-20240411.tar.xz
+/gcc-14.0.1-20240430.tar.xz
+/nvptx-tools-9962793f41e016318dc5eca07ae602041cf526ff.tar.xz
diff --git a/gcc.spec b/gcc.spec
index 9b70f6f..bccb96a 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,11 +1,11 @@
-%global DATE 20240411
-%global gitrev da6ad93fb1885bcdefecdf09fee4b9e901607710
+%global DATE 20240430
+%global gitrev 748fd0ecf84c5484621adeeaca105d7d50f0e409
%global gcc_version 14.0.1
%global gcc_major 14
# 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 0
-%global nvptx_tools_gitrev c5ad8ada3e86d96b10a9d352b7a764f801478ba6
+%global nvptx_tools_gitrev 9962793f41e016318dc5eca07ae602041cf526ff
%global newlib_cygwin_gitrev d45261f62a15f8abd94a1031020b9a9f455e4eed
%global _unpackaged_files_terminate_build 0
%global _performance_build 1
@@ -141,7 +141,7 @@
Summary: Various compilers (C, C++, Objective-C, ...)
Name: gcc
Version: %{gcc_version}
-Release: %{gcc_release}.15%{?dist}
+Release: %{gcc_release}.16%{?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
@@ -1583,7 +1583,6 @@ 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/
-rm -f %{buildroot}%{_mandir}/man3/TEMP*
find ../rpm.doc/libstdc++-v3 -name \*~ | xargs rm
%endif
@@ -3624,10 +3623,34 @@ end
%endif
%changelog
-* Thu Apr 25 2024 Jakub Jelinek
+* Tue Apr 30 2024 Jakub Jelinek 14.0.1-0.16
+- update from trunk and releases/gcc-14 branch
+ - PRs c++/93595, c++/99426, c++/106820, c++/107457, c++/109966, c++/111284,
+ c++/113141, c++/114078, c++/114393, c++/114426, c++/114600,
+ c++/114634, c++/114691, c++/114706, c++/114709, c++/114784,
+ c++/114795, c++/114888, c/92880, c/114780, d/111650, fortran/89462,
+ fortran/93678, fortran/102597, fortran/103471, fortran/103496,
+ fortran/113793, fortran/114739, fortran/114825, fortran/114959,
+ gcov-profile/114715, gcov-profile/114720, libgcc/114689,
+ libgcc/114755, libgcc/114762, libstdc++/93672, libstdc++/113386,
+ libstdc++/114750, libstdc++/114770, libstdc++/114803,
+ libstdc++/114863, lto/113208, lto/114574, middle-end/112938,
+ middle-end/114753, modula2/112893, modula2/114745, modula2/114807,
+ modula2/114811, modula2/114836, other/114738, preprocessor/114748,
+ rtl-optimization/114768, sanitizer/114687, sanitizer/114743,
+ target/110621, target/112431, target/112432, target/114416,
+ target/114668, target/114676, target/114696, target/114714,
+ target/114741, target/114752, target/114783, target/114794,
+ target/114810, target/114837, target/114861, target/114885,
+ testsuite/113706, testsuite/114744, testsuite/114768,
+ tree-optimization/114403, tree-optimization/114666,
+ tree-optimization/114733, tree-optimization/114736,
+ tree-optimization/114749, tree-optimization/114769,
+ tree-optimization/114787, tree-optimization/114792,
+ tree-optimization/114799, tree-optimization/114832,
+ tree-optimization/114883
- switch to --with-arch_64=x86-64-v3 for latest RHEL
- remove obsolete reason for not shipping *.gch* files
-- remove TEMP* man page from libstdc++-docs
* Thu Apr 11 2024 Jakub Jelinek 14.0.1-0.15
- update from trunk
diff --git a/sources b/sources
index 603296d..0f35e71 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-SHA512 (gcc-14.0.1-20240411.tar.xz) = aa7a43ed6ee1149530edc10cb14cbc7402f61d6165aa1ee89366cc6235dc9327a7a1201b3f0024a7d77e946ba095504f4d69c4abbf59de9d3abf3459298f05c9
+SHA512 (gcc-14.0.1-20240430.tar.xz) = 849f653d155037ee047679f7ae64755e567f7a25d095a6cdb9660a4f872b74905b95553a00d7a28e2309e554149e295d3479a6c2068518b2ce6597464a6a7a74
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
SHA512 (newlib-cygwin-d45261f62a15f8abd94a1031020b9a9f455e4eed.tar.xz) = 31bfc19429797236e268e22b752c5abeabb9c0f39b1058634af8dab329b4f028fc72a35888193c9575f6cee5cf2c069669d79fcb4d4e3a4318f57413452f707d
-SHA512 (nvptx-tools-c5ad8ada3e86d96b10a9d352b7a764f801478ba6.tar.xz) = 8a5c282852c995fabf75a8d6331db807a1acd935fd82022e00801b798fb850392d03e29cfa4aa7e3d5cfd8f48510e5e25b79a647fbec79c8566792584a0c1c49
+SHA512 (nvptx-tools-9962793f41e016318dc5eca07ae602041cf526ff.tar.xz) = 97ef04cf721f562f6859b948debf1a2b5a5c7970b60281d3162535669c9173f0e73585650b6798e2844860b08405252db074488418be167a9a0c4883e62f9432
From d6fcb33cdc956988dd2c0b757bd4aa3fa616ca8e Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Tue, 30 Apr 2024 13:32:34 +0200
Subject: [PATCH 04/41] 14.0.1-0.16
---
gcc.spec | 1 +
1 file changed, 1 insertion(+)
diff --git a/gcc.spec b/gcc.spec
index bccb96a..1e20d45 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -3625,6 +3625,7 @@ end
%changelog
* Tue Apr 30 2024 Jakub Jelinek 14.0.1-0.16
- update from trunk and releases/gcc-14 branch
+ - GCC 14.1.0-rc1
- PRs c++/93595, c++/99426, c++/106820, c++/107457, c++/109966, c++/111284,
c++/113141, c++/114078, c++/114393, c++/114426, c++/114600,
c++/114634, c++/114691, c++/114706, c++/114709, c++/114784,
From 20746dd85fbe810c19ef7e6dea76d3a110bb4a4d Mon Sep 17 00:00:00 2001
From: Marek Polacek
Date: Fri, 3 May 2024 14:49:35 -0400
Subject: [PATCH 05/41] 14.0.1-0.17
Enable hardening and configure with --enable-host-pie --enable-host-bind-now on RHEL
---
gcc.spec | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/gcc.spec b/gcc.spec
index 1e20d45..3a3ec20 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -8,9 +8,11 @@
%global nvptx_tools_gitrev 9962793f41e016318dc5eca07ae602041cf526ff
%global newlib_cygwin_gitrev d45261f62a15f8abd94a1031020b9a9f455e4eed
%global _unpackaged_files_terminate_build 0
+%if 0%{?fedora:1}
%global _performance_build 1
# Hardening slows the compiler way too much.
%undefine _hardened_build
+%endif
%undefine _auto_set_build_flags
%if 0%{?fedora} > 27 || 0%{?rhel} > 7
# Until annobin is fixed (#1519165).
@@ -141,7 +143,7 @@
Summary: Various compilers (C, C++, Objective-C, ...)
Name: gcc
Version: %{gcc_version}
-Release: %{gcc_release}.16%{?dist}
+Release: %{gcc_release}.17%{?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
@@ -1270,6 +1272,9 @@ CONFIGURE_OPTS="\
%ifnarch %{arm}
--with-build-config=bootstrap-lto --enable-link-serialization=1 \
%endif
+%endif
+%if 0%{?rhel:1}
+ --enable-host-pie --enable-host-bind-now \
%endif
"
@@ -3623,6 +3628,10 @@ end
%endif
%changelog
+* Fri May 3 2024 Marek Polacek 14.0.1-0.17
+- enable hardening and configure with --enable-host-pie --enable-host-bind-now
+ on RHEL
+
* Tue Apr 30 2024 Jakub Jelinek 14.0.1-0.16
- update from trunk and releases/gcc-14 branch
- GCC 14.1.0-rc1
From 6c8229ada42bdb571a07808a831cbba04c05ff16 Mon Sep 17 00:00:00 2001
From: Marek Polacek
Date: Fri, 3 May 2024 16:09:15 -0400
Subject: [PATCH 06/41] Don't build offload-amdgcn on RHEL
---
gcc.spec | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/gcc.spec b/gcc.spec
index 3a3ec20..4fd1e02 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -116,11 +116,15 @@
%else
%global build_offload_nvptx 0
%endif
+%if 0%{?rhel:1}
+%global build_offload_amdgcn 0
+%else
%ifarch x86_64
%global build_offload_amdgcn 1
%else
%global build_offload_amdgcn 0
%endif
+%endif
%if 0%{?fedora} < 32 && 0%{?rhel} < 8
%ifarch s390x
%global multilib_32_arch s390
@@ -3631,6 +3635,7 @@ end
* Fri May 3 2024 Marek Polacek 14.0.1-0.17
- enable hardening and configure with --enable-host-pie --enable-host-bind-now
on RHEL
+- don't build offload-amdgcn on RHEL
* Tue Apr 30 2024 Jakub Jelinek 14.0.1-0.16
- update from trunk and releases/gcc-14 branch
From 13569d0f04dee6cd42abc72fa19f32cb0fe32762 Mon Sep 17 00:00:00 2001
From: Marek Polacek
Date: Tue, 7 May 2024 13:20:04 -0400
Subject: [PATCH 07/41] Don't require rocm-runtime on RHEL
---
gcc.spec | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/gcc.spec b/gcc.spec
index 4fd1e02..e91ca62 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -116,15 +116,11 @@
%else
%global build_offload_nvptx 0
%endif
-%if 0%{?rhel:1}
-%global build_offload_amdgcn 0
-%else
%ifarch x86_64
%global build_offload_amdgcn 1
%else
%global build_offload_amdgcn 0
%endif
-%endif
%if 0%{?fedora} < 32 && 0%{?rhel} < 8
%ifarch s390x
%global multilib_32_arch s390
@@ -581,7 +577,9 @@ installed separately.
%package -n libgomp-offload-amdgcn
Summary: GCC OpenMP v4.5 plugin for offloading to AMD GCN
Requires: libgomp = %{version}-%{release}
+%if 0%{?fedora:1}
Requires: rocm-runtime >= 6.0.0
+%endif
%description -n libgomp-offload-amdgcn
This package contains libgomp plugin for offloading to AMD ROCm capable
@@ -3635,7 +3633,7 @@ end
* Fri May 3 2024 Marek Polacek 14.0.1-0.17
- enable hardening and configure with --enable-host-pie --enable-host-bind-now
on RHEL
-- don't build offload-amdgcn on RHEL
+- don't require rocm-runtime on RHEL
* Tue Apr 30 2024 Jakub Jelinek 14.0.1-0.16
- update from trunk and releases/gcc-14 branch
From 551363d0e23d0cd09294e22ad091704eb85a358c Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Wed, 8 May 2024 10:47:09 +0200
Subject: [PATCH 08/41] 14.1.1-1
---
gcc.spec | 21 +++++++++++++++------
gcc14-libstdc++-docs.patch | 4 ++--
update-gcc.sh | 2 +-
3 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/gcc.spec b/gcc.spec
index e91ca62..d326248 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,10 +1,10 @@
-%global DATE 20240430
-%global gitrev 748fd0ecf84c5484621adeeaca105d7d50f0e409
-%global gcc_version 14.0.1
+%global DATE 20240508
+%global gitrev 9ae733ecd3cd76d7e2f99385520783b01ab7e5dd
+%global gcc_version 14.1.1
%global gcc_major 14
# 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 0
+%global gcc_release 1
%global nvptx_tools_gitrev 9962793f41e016318dc5eca07ae602041cf526ff
%global newlib_cygwin_gitrev d45261f62a15f8abd94a1031020b9a9f455e4eed
%global _unpackaged_files_terminate_build 0
@@ -143,7 +143,7 @@
Summary: Various compilers (C, C++, Objective-C, ...)
Name: gcc
Version: %{gcc_version}
-Release: %{gcc_release}.17%{?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
@@ -3630,7 +3630,16 @@ end
%endif
%changelog
-* Fri May 3 2024 Marek Polacek 14.0.1-0.17
+* Wed May 8 2024 Jakub Jelinek 14.1.1-1
+- update from releases/gcc-14 branch
+ - GCC 14.1.0 release
+ - PRs analyzer/111475, c++/89224, c++/114856, c++/114889, c++/114935,
+ ipa/92606, middle-end/114734, middle-end/114907, modula2/113768,
+ modula2/114133, modula2/114929, rtl-optimization/114924,
+ sanitizer/114956, tree-optimization/114876,
+ tree-optimization/114921, tree-optimization/114965
+
+* Fri May 3 2024 Marek Polacek
- enable hardening and configure with --enable-host-pie --enable-host-bind-now
on RHEL
- don't require rocm-runtime on RHEL
diff --git a/gcc14-libstdc++-docs.patch b/gcc14-libstdc++-docs.patch
index 662cc64..b774935 100644
--- a/gcc14-libstdc++-docs.patch
+++ b/gcc14-libstdc++-docs.patch
@@ -4,7 +4,7 @@
FSF
-+ Release 14.0.1
++ Release 14.1.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 14.0.1 release,
++ for the 14.1.1 release,
+ online
for each GCC release
and
diff --git a/update-gcc.sh b/update-gcc.sh
index 9804331..f1aa644 100755
--- a/update-gcc.sh
+++ b/update-gcc.sh
@@ -3,5 +3,5 @@
git clone --depth 1 git://gcc.gnu.org/git/gcc.git gcc-dir.tmp
git --git-dir=gcc-dir.tmp/.git fetch --depth 1 origin $1
d=`date --iso | sed 's/-//g'`
-git --git-dir=gcc-dir.tmp/.git archive --prefix=gcc-14.0.1-$d/ $1 | xz -9e > gcc-14.0.1-$d.tar.xz
+git --git-dir=gcc-dir.tmp/.git archive --prefix=gcc-14.1.1-$d/ $1 | xz -9e > gcc-14.1.1-$d.tar.xz
rm -rf gcc-dir.tmp
From 8e7867c2d3dbf7225ed0bbc8e17ad71cf2bbccbd Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Wed, 8 May 2024 10:49:53 +0200
Subject: [PATCH 09/41] 14.1.1-1
---
.gitignore | 1 +
sources | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/.gitignore b/.gitignore
index 11d7539..d2ceee3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,3 +16,4 @@
/gcc-14.0.1-20240411.tar.xz
/gcc-14.0.1-20240430.tar.xz
/nvptx-tools-9962793f41e016318dc5eca07ae602041cf526ff.tar.xz
+/gcc-14.1.1-20240508.tar.xz
diff --git a/sources b/sources
index 0f35e71..c27d6cc 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-SHA512 (gcc-14.0.1-20240430.tar.xz) = 849f653d155037ee047679f7ae64755e567f7a25d095a6cdb9660a4f872b74905b95553a00d7a28e2309e554149e295d3479a6c2068518b2ce6597464a6a7a74
+SHA512 (gcc-14.1.1-20240508.tar.xz) = 2c0106d8a92ea76dacd78bcb2ac988d3662f15aa846772f5c3b1c93aa77f3a5e4cc601a4ece208ab414e8075d1fef49ebe66dea658b24ab9594618717356a8d7
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
SHA512 (newlib-cygwin-d45261f62a15f8abd94a1031020b9a9f455e4eed.tar.xz) = 31bfc19429797236e268e22b752c5abeabb9c0f39b1058634af8dab329b4f028fc72a35888193c9575f6cee5cf2c069669d79fcb4d4e3a4318f57413452f707d
SHA512 (nvptx-tools-9962793f41e016318dc5eca07ae602041cf526ff.tar.xz) = 97ef04cf721f562f6859b948debf1a2b5a5c7970b60281d3162535669c9173f0e73585650b6798e2844860b08405252db074488418be167a9a0c4883e62f9432
From 7b746958a358bd7252d130f41b6a3d5893bf8736 Mon Sep 17 00:00:00 2001
From: Marek Polacek
Date: Fri, 17 May 2024 09:50:05 -0400
Subject: [PATCH 10/41] 14.1.1-2
---
gcc.spec | 7 ++++-
gcc14-pr101523.patch | 68 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 74 insertions(+), 1 deletion(-)
create mode 100644 gcc14-pr101523.patch
diff --git a/gcc.spec b/gcc.spec
index d326248..0d6b4bd 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -4,7 +4,7 @@
%global gcc_major 14
# 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 1
+%global gcc_release 2
%global nvptx_tools_gitrev 9962793f41e016318dc5eca07ae602041cf526ff
%global newlib_cygwin_gitrev d45261f62a15f8abd94a1031020b9a9f455e4eed
%global _unpackaged_files_terminate_build 0
@@ -310,6 +310,7 @@ Patch8: gcc14-no-add-needed.patch
Patch9: gcc14-Wno-format-security.patch
Patch10: gcc14-rh1574936.patch
Patch11: gcc14-d-shared-libphobos.patch
+Patch12: gcc14-pr101523.patch
Patch50: isl-rh2155127.patch
@@ -910,6 +911,7 @@ so that there cannot be any synchronization problems.
%patch -P10 -p0 -b .rh1574936~
%endif
%patch -P11 -p0 -b .d-shared-libphobos~
+%patch -P12 -p1 -b .pr101523~
%patch -P50 -p0 -b .rh2155127~
touch -r isl-0.24/m4/ax_prog_cxx_for_build.m4 isl-0.24/m4/ax_prog_cc_for_build.m4
@@ -3630,6 +3632,9 @@ end
%endif
%changelog
+* Thu May 16 2024 Marek Polacek 14.1.1-2
+- fix a combinatorial explosion in combine (PR rtl-optimization/101523)
+
* Wed May 8 2024 Jakub Jelinek 14.1.1-1
- update from releases/gcc-14 branch
- GCC 14.1.0 release
diff --git a/gcc14-pr101523.patch b/gcc14-pr101523.patch
new file mode 100644
index 0000000..618f97e
--- /dev/null
+++ b/gcc14-pr101523.patch
@@ -0,0 +1,68 @@
+Based on Richi's patch:
+
+~~
+The following avoids re-walking and re-combining the instructions
+between i2 and i3 when the pattern of i2 doesn't change.
+
+Bootstrap and regtest running ontop of a reversal of
+r14-9692-g839bc42772ba7a.
+
+It brings down memory use frmo 9GB to 400MB and compile-time from
+80s to 3.5s. r14-9692-g839bc42772ba7a does better in both metrics
+but has shown code generation regressions across acrchitectures.
+
+ PR rtl-optimization/101523
+ * combine.cc (try_combine): When the pattern of i2 doesn't
+ change do not re-start combining at i2 or an earlier insn which
+ had links or notes added.
+~~
+But, since the patch affects code generation (for instance,
+libstdc++-v3/src/c++17/floating_from_chars.o), we limit the bailing out
+only when I2 hasn't been changed 1000x. I've measured how many times
+at most is I2 unchanged during a bootstrap + regtest.
+x86: 134
+aarch64: 736 (gimple-match-1.cc)
+s390x: 635 (gimple-match-*)
+ppc64le: 620 (gimple-match-*)
+while certain pathological testcases trigger it more than 10,000 times.
+With the limit in place this patch doesn't affect common code.
+
+--- a/gcc/combine.cc
++++ b/gcc/combine.cc
+@@ -92,6 +92,11 @@ along with GCC; see the file COPYING3. If not see
+ #include "function-abi.h"
+ #include "rtlanal.h"
+
++/* Number of times I2 didn't change in try_combine. Used to prevent a
++ combinatorial explosion. */
++
++static int combine_unchanged;
++
+ /* Number of attempts to combine instructions in this function. */
+
+ static int combine_attempts;
+@@ -4196,6 +4201,10 @@ try_combine (rtx_insn *i3, rtx_insn *i2, rtx_insn *i1, rtx_insn *i0,
+ adjust_for_new_dest (i3);
+ }
+
++ bool i2_unchanged = false;
++ if (rtx_equal_p (newi2pat, PATTERN (i2)))
++ i2_unchanged = true;
++
+ /* We now know that we can do this combination. Merge the insns and
+ update the status of registers and LOG_LINKS. */
+
+@@ -4762,6 +4771,13 @@ try_combine (rtx_insn *i3, rtx_insn *i2, rtx_insn *i1, rtx_insn *i0,
+ combine_successes++;
+ undo_commit ();
+
++ if (i2_unchanged)
++ {
++ if (combine_unchanged == 1000)
++ return i3;
++ ++combine_unchanged;
++ }
++
+ rtx_insn *ret = newi2pat ? i2 : i3;
+ if (added_links_insn && DF_INSN_LUID (added_links_insn) < DF_INSN_LUID (ret))
+ ret = added_links_insn;
From 150f0ee9153fa1e1095372a69025e27124ac51b6 Mon Sep 17 00:00:00 2001
From: Marek Polacek
Date: Fri, 17 May 2024 10:04:53 -0400
Subject: [PATCH 11/41] 14.1.1-2
---
gcc14-pr101523.patch | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/gcc14-pr101523.patch b/gcc14-pr101523.patch
index 618f97e..7ca8467 100644
--- a/gcc14-pr101523.patch
+++ b/gcc14-pr101523.patch
@@ -41,6 +41,14 @@ With the limit in place this patch doesn't affect common code.
/* Number of attempts to combine instructions in this function. */
static int combine_attempts;
+@@ -1127,6 +1132,7 @@ combine_instructions (rtx_insn *f, unsigned int nregs)
+ return false;
+
+ combine_attempts = 0;
++ combine_unchanged = 0;
+ combine_merges = 0;
+ combine_extras = 0;
+ combine_successes = 0;
@@ -4196,6 +4201,10 @@ try_combine (rtx_insn *i3, rtx_insn *i2, rtx_insn *i1, rtx_insn *i0,
adjust_for_new_dest (i3);
}
From face1955f510433d16f93e8665e1ca232d6ecdf4 Mon Sep 17 00:00:00 2001
From: Siddhesh Poyarekar
Date: Tue, 21 May 2024 13:37:31 -0400
Subject: [PATCH 12/41] Update new SPDX identifiers from all outstanding
issues.
---
gcc.spec | 14 +++++---------
1 file changed, 5 insertions(+), 9 deletions(-)
diff --git a/gcc.spec b/gcc.spec
index 0d6b4bd..4fd0c37 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -4,7 +4,7 @@
%global gcc_major 14
# 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 2
+%global gcc_release 3
%global nvptx_tools_gitrev 9962793f41e016318dc5eca07ae602041cf526ff
%global newlib_cygwin_gitrev d45261f62a15f8abd94a1031020b9a9f455e4eed
%global _unpackaged_files_terminate_build 0
@@ -150,14 +150,7 @@ Release: %{gcc_release}%{?dist}
# libcody: Apache-2.0
# libphobos/src/etc/c/curl.d: curl
# All of the remaining license soup is in newlib.
-# Outstanding new SPDX identifier requests:
-# https://github.com/spdx/license-list-XML/issues/2395
-# https://github.com/spdx/license-list-XML/issues/2406
-# https://github.com/spdx/license-list-XML/issues/2408
-# https://github.com/spdx/license-list-XML/issues/2409
-# https://github.com/spdx/license-list-XML/issues/2410
-# https://github.com/spdx/license-list-XML/issues/2411
-License: GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn
+License: GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
# The source for this package was pulled from upstream's vcs.
# %%{gitrev} is some commit from the
@@ -3632,6 +3625,9 @@ end
%endif
%changelog
+* Tue May 21 2024 Siddhesh Poyarekar 14.1.1-3
+- Update new SPDX identifiers from all outstanding issues.
+
* Thu May 16 2024 Marek Polacek 14.1.1-2
- fix a combinatorial explosion in combine (PR rtl-optimization/101523)
From c6f99ecd741667cf8aee5977a46e347a6aff4b59 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Wed, 22 May 2024 11:58:56 +0200
Subject: [PATCH 13/41] gcc-14.1.1-4
---
.gitignore | 1 +
gcc.spec | 32 ++++++++++++++++++++++----------
gcc14-pr101523.patch | 18 +++++++++---------
sources | 2 +-
update-gcc.sh | 37 +++++++++++++++++++++++++++++++++----
5 files changed, 66 insertions(+), 24 deletions(-)
diff --git a/.gitignore b/.gitignore
index d2ceee3..d8006cd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,4 @@
/gcc-14.0.1-20240430.tar.xz
/nvptx-tools-9962793f41e016318dc5eca07ae602041cf526ff.tar.xz
/gcc-14.1.1-20240508.tar.xz
+/gcc-14.1.1-20240522.tar.xz
diff --git a/gcc.spec b/gcc.spec
index 4fd0c37..564d6a7 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,10 +1,10 @@
-%global DATE 20240508
-%global gitrev 9ae733ecd3cd76d7e2f99385520783b01ab7e5dd
+%global DATE 20240522
+%global gitrev e6b72839728d26b6a83955eeaef2962cc00308bb
%global gcc_version 14.1.1
%global gcc_major 14
# 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 3
+%global gcc_release 4
%global nvptx_tools_gitrev 9962793f41e016318dc5eca07ae602041cf526ff
%global newlib_cygwin_gitrev d45261f62a15f8abd94a1031020b9a9f455e4eed
%global _unpackaged_files_terminate_build 0
@@ -151,15 +151,16 @@ Release: %{gcc_release}%{?dist}
# libphobos/src/etc/c/curl.d: curl
# All of the remaining license soup is in newlib.
License: GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
-
# The source for this package was pulled from upstream's vcs.
# %%{gitrev} is some commit from the
# https://gcc.gnu.org/git/?p=gcc.git;h=refs/vendors/redhat/heads/gcc-%%{gcc_major}-branch
-# branch. Use the following commands to generate the tarball:
-# git clone --depth 1 git://gcc.gnu.org/git/gcc.git gcc-dir.tmp
-# git --git-dir=gcc-dir.tmp/.git fetch --depth 1 origin %%{gitrev}
-# git --git-dir=gcc-dir.tmp/.git archive --prefix=%%{name}-%%{version}-%%{DATE}/ %%{gitrev} | xz -9e > %%{name}-%%{version}-%%{DATE}.tar.xz
-# rm -rf gcc-dir.tmp
+# branch. Use the following command to generate the tarball:
+# ./update-gcc.sh %%{gitrev}
+# optionally if say /usr/src/gcc/.git/ is an existing gcc git clone
+# ./update-gcc.sh %%{gitrev} /usr/src/gcc/.git/
+# to speed up the clone operations. Note, %%{gitrev} macro in
+# gcc.spec shouldn't be updated before running the script, the script
+# will update it, fill in some %%changelog details etc.
Source0: gcc-%{version}-%{DATE}.tar.xz
# The source for nvptx-tools package was pulled from upstream's vcs. Use the
# following commands to generate the tarball:
@@ -3625,8 +3626,19 @@ end
%endif
%changelog
+* Wed May 22 2024 Jakub Jelinek 14.1.1-4
+- update from releases/gcc-14 branch
+ - PRs c++/114901, c++/114903, c++/114974, c++/114994, c++/115114,
+ c++/115139, driver/114980, fortran/114827, fortran/114874,
+ fortran/115039, libstdc++/107800, libstdc++/114866, libstdc++/114891,
+ libstdc++/115015, libstdc++/115063, libstdc++/115119,
+ middle-end/114931, sanitizer/115172, target/69374, target/112959,
+ target/114968, target/114975, target/114981, target/115065,
+ target/115069, tree-optimization/114998, tree-optimization/115143,
+ tree-optimization/115152, tree-optimization/115154
+
* Tue May 21 2024 Siddhesh Poyarekar 14.1.1-3
-- Update new SPDX identifiers from all outstanding issues.
+- update new SPDX identifiers from all outstanding issues
* Thu May 16 2024 Marek Polacek 14.1.1-2
- fix a combinatorial explosion in combine (PR rtl-optimization/101523)
diff --git a/gcc14-pr101523.patch b/gcc14-pr101523.patch
index 7ca8467..8f3b47b 100644
--- a/gcc14-pr101523.patch
+++ b/gcc14-pr101523.patch
@@ -7,9 +7,9 @@ between i2 and i3 when the pattern of i2 doesn't change.
Bootstrap and regtest running ontop of a reversal of
r14-9692-g839bc42772ba7a.
-It brings down memory use frmo 9GB to 400MB and compile-time from
+It brings down memory use from 9GB to 400MB and compile-time from
80s to 3.5s. r14-9692-g839bc42772ba7a does better in both metrics
-but has shown code generation regressions across acrchitectures.
+but has shown code generation regressions across architectures.
PR rtl-optimization/101523
* combine.cc (try_combine): When the pattern of i2 doesn't
@@ -36,7 +36,7 @@ With the limit in place this patch doesn't affect common code.
+/* Number of times I2 didn't change in try_combine. Used to prevent a
+ combinatorial explosion. */
+
-+static int combine_unchanged;
++static int combine_i2_unchanged;
+
/* Number of attempts to combine instructions in this function. */
@@ -45,7 +45,7 @@ With the limit in place this patch doesn't affect common code.
return false;
combine_attempts = 0;
-+ combine_unchanged = 0;
++ combine_i2_unchanged = 0;
combine_merges = 0;
combine_extras = 0;
combine_successes = 0;
@@ -53,9 +53,9 @@ With the limit in place this patch doesn't affect common code.
adjust_for_new_dest (i3);
}
-+ bool i2_unchanged = false;
++ bool i2_i2_unchanged = false;
+ if (rtx_equal_p (newi2pat, PATTERN (i2)))
-+ i2_unchanged = true;
++ i2_i2_unchanged = true;
+
/* We now know that we can do this combination. Merge the insns and
update the status of registers and LOG_LINKS. */
@@ -64,11 +64,11 @@ With the limit in place this patch doesn't affect common code.
combine_successes++;
undo_commit ();
-+ if (i2_unchanged)
++ if (i2_i2_unchanged)
+ {
-+ if (combine_unchanged == 1000)
++ if (combine_i2_unchanged == 1000)
+ return i3;
-+ ++combine_unchanged;
++ ++combine_i2_unchanged;
+ }
+
rtx_insn *ret = newi2pat ? i2 : i3;
diff --git a/sources b/sources
index c27d6cc..10e470e 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-SHA512 (gcc-14.1.1-20240508.tar.xz) = 2c0106d8a92ea76dacd78bcb2ac988d3662f15aa846772f5c3b1c93aa77f3a5e4cc601a4ece208ab414e8075d1fef49ebe66dea658b24ab9594618717356a8d7
+SHA512 (gcc-14.1.1-20240522.tar.xz) = 01cff9fc6de1568b90b2c74f5ae21eb1c06b3e3d5361f05482fd981accbfbf64512773930424fdd9411192fc3f8c5d4f63fba6bad13d7ad4fc3d606b60e56d4c
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
SHA512 (newlib-cygwin-d45261f62a15f8abd94a1031020b9a9f455e4eed.tar.xz) = 31bfc19429797236e268e22b752c5abeabb9c0f39b1058634af8dab329b4f028fc72a35888193c9575f6cee5cf2c069669d79fcb4d4e3a4318f57413452f707d
SHA512 (nvptx-tools-9962793f41e016318dc5eca07ae602041cf526ff.tar.xz) = 97ef04cf721f562f6859b948debf1a2b5a5c7970b60281d3162535669c9173f0e73585650b6798e2844860b08405252db074488418be167a9a0c4883e62f9432
diff --git a/update-gcc.sh b/update-gcc.sh
index f1aa644..93160c9 100755
--- a/update-gcc.sh
+++ b/update-gcc.sh
@@ -1,7 +1,36 @@
#!/bin/sh
-[ -d gcc-dir.tmp ] && echo gcc-dir.tmp already exists && exit 1
-git clone --depth 1 git://gcc.gnu.org/git/gcc.git gcc-dir.tmp
-git --git-dir=gcc-dir.tmp/.git fetch --depth 1 origin $1
+if [ "$#" -eq 0 ]; then
+ echo "Usage: ./update-gcc.sh gcc/redhat/heads/gcc-NN-branch_commit_hash [git_reference_dir_to_speed_up]"
+ exit 1
+fi
+export LC_ALL=C
+if ! [ -f gcc.spec ]; then echo Must be run in the directory with gcc.spec file.; exit 1; fi
+if [ -d gcc-dir.tmp ]; then echo gcc-dir.tmp already exists.; exit 1; fi
+v=`sed -n 's/^%global gcc_version //p' gcc.spec`
+p=`sed -n 's/^%global gitrev //p' gcc.spec`
+h=$1
+if [ "$#" -ge 2 ]; then
+ git clone --dissociate --reference $2 git://gcc.gnu.org/git/gcc.git gcc-dir.tmp
+else
+ git clone git://gcc.gnu.org/git/gcc.git gcc-dir.tmp
+fi
+git --git-dir=gcc-dir.tmp/.git fetch origin $h
d=`date --iso | sed 's/-//g'`
-git --git-dir=gcc-dir.tmp/.git archive --prefix=gcc-14.1.1-$d/ $1 | xz -9e > gcc-14.1.1-$d.tar.xz
+cd gcc-dir.tmp
+git diff $p..$h > P1
+git log --format=%B `git log --format='%ae %H' $p..$h | awk '/^gccadmin@gcc.gnu.org/{print $2;exit 0}'`..$h > P2
+diff -up /dev/null P2 >> P1
+sed -n 's,^+[[:blank:]]\+PR \([a-z0-9+-]\+/[0-9]\+\)$,\1,p' P1 | sed 's/ - .*$//;s/[: ;.]//g' | LC_ALL=C sort -u -t / -k 1,1 -k 2,2n > P3
+> P4
+for i in `cat P3`; do if grep -F $i ../gcc.spec >/dev/null; then echo $i already recorded.; else echo $i >> P4; fi; done
+case "$v" in
+ *.0.*) echo "- update from trunk" > P5;;
+ *) echo "- update from releases/gcc-`echo $v | sed 's/\..*$//'` branch" > P5;;
+esac
+echo `cat P4` | sed 's/ /, /g' | fold -w 71 -s | sed '1s/^/ - PRs /;2,$s/^/ /;s/, $/,/' >> P5
+echo >> P5
+cd ..
+sed -i -e '/^%global gitrev /s/ [0-9a-f]\+$/ '$h'/;/^%global DATE /s/ [0-9]\+$/ '$d'/;/^%changelog$/r gcc-dir.tmp/P5' gcc.spec
+git --git-dir=gcc-dir.tmp/.git archive --prefix=gcc-$v-$d/ $h | xz -9e > gcc-$v-$d.tar.xz
rm -rf gcc-dir.tmp
+fedpkg new-sources gcc-$v-$d.tar.xz `sed 's/SHA512 (\(.*\)) = [0-9a-f]\+$/\1/' sources | grep -v '^gcc-'`
From 73893f69355d52055dd41c7a9241267b019c452d Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Fri, 7 Jun 2024 11:06:03 +0200
Subject: [PATCH 14/41] 14.1.1-5
---
.gitignore | 2 ++
gcc.spec | 21 +++++++++++++++++----
sources | 4 ++--
3 files changed, 21 insertions(+), 6 deletions(-)
diff --git a/.gitignore b/.gitignore
index d8006cd..c60b5a8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,3 +18,5 @@
/nvptx-tools-9962793f41e016318dc5eca07ae602041cf526ff.tar.xz
/gcc-14.1.1-20240508.tar.xz
/gcc-14.1.1-20240522.tar.xz
+/gcc-14.1.1-20240607.tar.xz
+/nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz
diff --git a/gcc.spec b/gcc.spec
index 564d6a7..94e56d9 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,11 +1,11 @@
-%global DATE 20240522
-%global gitrev e6b72839728d26b6a83955eeaef2962cc00308bb
+%global DATE 20240607
+%global gitrev 1de1e03e8bd3490b53f6fe454f7a48ddc1c839f2
%global gcc_version 14.1.1
%global gcc_major 14
# 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 nvptx_tools_gitrev 9962793f41e016318dc5eca07ae602041cf526ff
+%global gcc_release 5
+%global nvptx_tools_gitrev 87ce9dc5999e5fca2e1d3478a30888d9864c9804
%global newlib_cygwin_gitrev d45261f62a15f8abd94a1031020b9a9f455e4eed
%global _unpackaged_files_terminate_build 0
%if 0%{?fedora:1}
@@ -3626,6 +3626,19 @@ end
%endif
%changelog
+* Fri Jun 7 2024 Jakub Jelinek 14.1.1-5
+- update from releases/gcc-14 branch
+ - PRs ada/115270, c/114493, c++/105320, c++/114275, c++/114868, c++/114983,
+ c++/115187, fortran/86100, fortran/115150, libstdc++/109849,
+ libstdc++/111641, libstdc++/114940, libstdc++/115099,
+ libstdc++/115269, libstdc++/115335, middle-end/108789,
+ middle-end/115352, modula2/114886, rtl-optimization/114902,
+ rtl-optimization/115038, rtl-optimization/115092, target/113719,
+ target/115169, target/115297, target/115317, target/115324,
+ tree-optimization/115149, tree-optimization/115192,
+ tree-optimization/115197, tree-optimization/115232,
+ tree-optimization/115307, tree-optimization/115337
+
* Wed May 22 2024 Jakub Jelinek 14.1.1-4
- update from releases/gcc-14 branch
- PRs c++/114901, c++/114903, c++/114974, c++/114994, c++/115114,
diff --git a/sources b/sources
index 10e470e..5d32c89 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-SHA512 (gcc-14.1.1-20240522.tar.xz) = 01cff9fc6de1568b90b2c74f5ae21eb1c06b3e3d5361f05482fd981accbfbf64512773930424fdd9411192fc3f8c5d4f63fba6bad13d7ad4fc3d606b60e56d4c
+SHA512 (gcc-14.1.1-20240607.tar.xz) = 3b873c977deebdb33eec0a174bd7eb743834bec5a70676398e8982bb30fad09a820a9c9bc812793cf1a302a7665e09b8212843a4a71e5d01ad911de6d1de5e15
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
SHA512 (newlib-cygwin-d45261f62a15f8abd94a1031020b9a9f455e4eed.tar.xz) = 31bfc19429797236e268e22b752c5abeabb9c0f39b1058634af8dab329b4f028fc72a35888193c9575f6cee5cf2c069669d79fcb4d4e3a4318f57413452f707d
-SHA512 (nvptx-tools-9962793f41e016318dc5eca07ae602041cf526ff.tar.xz) = 97ef04cf721f562f6859b948debf1a2b5a5c7970b60281d3162535669c9173f0e73585650b6798e2844860b08405252db074488418be167a9a0c4883e62f9432
+SHA512 (nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz) = 941e763af8601b89f0e4ec48a2d68ae0a8e70ee1e6ba6859394b021ad7bd7d143cc529f3c35c08d7f84e5554980ddcc97cf05b6c4755c2bc36c91161b79e8cea
From 467c94cde8682e3bb5285faaa9417ec1df01fb6e Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Thu, 20 Jun 2024 13:48:15 +0200
Subject: [PATCH 15/41] 14.1.1-6
---
.gitignore | 1 +
gcc.spec | 15 ++++++++++++---
sources | 2 +-
3 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/.gitignore b/.gitignore
index c60b5a8..b4a8347 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,3 +20,4 @@
/gcc-14.1.1-20240522.tar.xz
/gcc-14.1.1-20240607.tar.xz
/nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz
+/gcc-14.1.1-20240620.tar.xz
diff --git a/gcc.spec b/gcc.spec
index 94e56d9..4f373b2 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,10 +1,10 @@
-%global DATE 20240607
-%global gitrev 1de1e03e8bd3490b53f6fe454f7a48ddc1c839f2
+%global DATE 20240620
+%global gitrev 640bb0fa76a23712bd9b0518a00c3c4ed59a775d
%global gcc_version 14.1.1
%global gcc_major 14
# 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 5
+%global gcc_release 6
%global nvptx_tools_gitrev 87ce9dc5999e5fca2e1d3478a30888d9864c9804
%global newlib_cygwin_gitrev d45261f62a15f8abd94a1031020b9a9f455e4eed
%global _unpackaged_files_terminate_build 0
@@ -3626,6 +3626,15 @@ end
%endif
%changelog
+* Thu Jun 20 2024 Jakub Jelinek 14.1.1-6
+- update from releases/gcc-14 branch
+ - PRs ada/114398, ada/114708, c/115290, c++/99678, c++/115239, c++/115283,
+ c++/115378, c++/115511, driver/115440, fortran/83865, jit/115442,
+ libstdc++/114958, libstdc++/115247, libstdc++/115308,
+ rtl-optimization/115281, target/109549, target/111343, target/115253,
+ target/115353, target/115360, tree-optimization/115544
+ - fix s390x ICEs with vector permutations from memory (#2293207, #2292501)
+
* Fri Jun 7 2024 Jakub Jelinek 14.1.1-5
- update from releases/gcc-14 branch
- PRs ada/115270, c/114493, c++/105320, c++/114275, c++/114868, c++/114983,
diff --git a/sources b/sources
index 5d32c89..e9611fd 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-SHA512 (gcc-14.1.1-20240607.tar.xz) = 3b873c977deebdb33eec0a174bd7eb743834bec5a70676398e8982bb30fad09a820a9c9bc812793cf1a302a7665e09b8212843a4a71e5d01ad911de6d1de5e15
+SHA512 (gcc-14.1.1-20240620.tar.xz) = 0082429bdd2b91b1c78daa372db18f111ce0ea38a836992c5d316bf4d504c876302d8225a32fffa1c2ca1ef3c2068a388f409237c085d0d518b5f30e64d7572c
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
SHA512 (newlib-cygwin-d45261f62a15f8abd94a1031020b9a9f455e4eed.tar.xz) = 31bfc19429797236e268e22b752c5abeabb9c0f39b1058634af8dab329b4f028fc72a35888193c9575f6cee5cf2c069669d79fcb4d4e3a4318f57413452f707d
SHA512 (nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz) = 941e763af8601b89f0e4ec48a2d68ae0a8e70ee1e6ba6859394b021ad7bd7d143cc529f3c35c08d7f84e5554980ddcc97cf05b6c4755c2bc36c91161b79e8cea
From 5551c1491d79b411a6440ed560ae2371ae32644a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?=
Date: Thu, 27 Jun 2024 08:01:05 +0000
Subject: [PATCH 16/41] Replace homegrown byte compilation with
%py_byte_compile
Resolves https://bugzilla.redhat.com/show_bug.cgi?id=2294381.
Note that the 'touch -r' calls should not be necessary since
https://fedoraproject.org/wiki/Changes/ReproducibleBuildsClampMtimes.
---
gcc.spec | 14 ++------------
1 file changed, 2 insertions(+), 12 deletions(-)
diff --git a/gcc.spec b/gcc.spec
index 4f373b2..f8466bb 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1682,18 +1682,8 @@ 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
+%py_byte_compile %{python3} %{buildroot}%{_prefix}/share/gcc-%{gcc_major}/python/
+%py_byte_compile %{python3} %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/
rm -f $FULLEPATH/libgccjit.so
cp -a objlibgccjit/gcc/libgccjit.so* %{buildroot}%{_prefix}/%{_lib}/
From 4b5f87d836da79f7322915b8a9e2e4f08b828d0c Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Mon, 1 Jul 2024 10:54:56 +0200
Subject: [PATCH 17/41] 14.1.1-7
---
.gitignore | 1 +
gcc.spec | 15 ++++++++++++---
sources | 2 +-
3 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/.gitignore b/.gitignore
index b4a8347..b76275e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,3 +21,4 @@
/gcc-14.1.1-20240607.tar.xz
/nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz
/gcc-14.1.1-20240620.tar.xz
+/gcc-14.1.1-20240701.tar.xz
diff --git a/gcc.spec b/gcc.spec
index f8466bb..5f587ab 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,10 +1,10 @@
-%global DATE 20240620
-%global gitrev 640bb0fa76a23712bd9b0518a00c3c4ed59a775d
+%global DATE 20240701
+%global gitrev 6eada54ba865eeb9aabfcfbc106c3fbff7abe98a
%global gcc_version 14.1.1
%global gcc_major 14
# 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 6
+%global gcc_release 7
%global nvptx_tools_gitrev 87ce9dc5999e5fca2e1d3478a30888d9864c9804
%global newlib_cygwin_gitrev d45261f62a15f8abd94a1031020b9a9f455e4eed
%global _unpackaged_files_terminate_build 0
@@ -3616,6 +3616,15 @@ end
%endif
%changelog
+* Mon Jul 1 2024 Jakub Jelinek 14.1.1-7
+- update from releases/gcc-14 branch
+ - PRs c/114930, c/115502, c/115587, c++/115198, c++/115358, c++/115504,
+ c++/115624, fortran/114019, fortran/115390, libstdc++/115454,
+ libstdc++/115575, libstdc++/115668, target/106069, target/114846,
+ target/115342, target/115355, target/115608, tree-optimization/115278,
+ tree-optimization/115508
+- revert the August 2016 workaround for python bytecode compilation (#2294381)
+
* Thu Jun 20 2024 Jakub Jelinek 14.1.1-6
- update from releases/gcc-14 branch
- PRs ada/114398, ada/114708, c/115290, c++/99678, c++/115239, c++/115283,
diff --git a/sources b/sources
index e9611fd..11e157a 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-SHA512 (gcc-14.1.1-20240620.tar.xz) = 0082429bdd2b91b1c78daa372db18f111ce0ea38a836992c5d316bf4d504c876302d8225a32fffa1c2ca1ef3c2068a388f409237c085d0d518b5f30e64d7572c
+SHA512 (gcc-14.1.1-20240701.tar.xz) = 1b68d02a9e6ddf7556a802ef672a9f3874faf5a66c0befc164838cc9fcdff10d5db4eea4a9f7e8312ccc881d41a696431d4d5d6486ef5d653da7c7fba945de6f
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
SHA512 (newlib-cygwin-d45261f62a15f8abd94a1031020b9a9f455e4eed.tar.xz) = 31bfc19429797236e268e22b752c5abeabb9c0f39b1058634af8dab329b4f028fc72a35888193c9575f6cee5cf2c069669d79fcb4d4e3a4318f57413452f707d
SHA512 (nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz) = 941e763af8601b89f0e4ec48a2d68ae0a8e70ee1e6ba6859394b021ad7bd7d143cc529f3c35c08d7f84e5554980ddcc97cf05b6c4755c2bc36c91161b79e8cea
From 5032483c400bd62b6cd1b5d21b902c6457f40ab6 Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Thu, 18 Jul 2024 00:14:52 +0000
Subject: [PATCH 18/41] Rebuilt for
https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
---
gcc.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/gcc.spec b/gcc.spec
index 5f587ab..e312faa 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -143,7 +143,7 @@
Summary: Various compilers (C, C++, Objective-C, ...)
Name: gcc
Version: %{gcc_version}
-Release: %{gcc_release}%{?dist}
+Release: %{gcc_release}%{?dist}.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
@@ -3616,6 +3616,9 @@ end
%endif
%changelog
+* Thu Jul 18 2024 Fedora Release Engineering - 14.1.1-7.1
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
+
* Mon Jul 1 2024 Jakub Jelinek 14.1.1-7
- update from releases/gcc-14 branch
- PRs c/114930, c/115502, c/115587, c++/115198, c++/115358, c++/115504,
From b100864ab2efe1f398e9b47012498e057ebbfb3c Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Thu, 1 Aug 2024 20:59:14 +0200
Subject: [PATCH 19/41] 14.2.1-1
---
.gitignore | 1 +
gcc.spec | 43 +++++++++++++++++++++++++++++++-------
gcc14-libstdc++-docs.patch | 4 ++--
sources | 2 +-
4 files changed, 40 insertions(+), 10 deletions(-)
diff --git a/.gitignore b/.gitignore
index b76275e..052e49a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,3 +22,4 @@
/nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz
/gcc-14.1.1-20240620.tar.xz
/gcc-14.1.1-20240701.tar.xz
+/gcc-14.2.1-20240801.tar.xz
diff --git a/gcc.spec b/gcc.spec
index e312faa..215bb29 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,10 +1,10 @@
-%global DATE 20240701
-%global gitrev 6eada54ba865eeb9aabfcfbc106c3fbff7abe98a
-%global gcc_version 14.1.1
+%global DATE 20240801
+%global gitrev 43d4666d3d94934f11857a2fb9122c575be81801
+%global gcc_version 14.2.1
%global gcc_major 14
# 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 7
+%global gcc_release 1
%global nvptx_tools_gitrev 87ce9dc5999e5fca2e1d3478a30888d9864c9804
%global newlib_cygwin_gitrev d45261f62a15f8abd94a1031020b9a9f455e4eed
%global _unpackaged_files_terminate_build 0
@@ -143,7 +143,7 @@
Summary: Various compilers (C, C++, Objective-C, ...)
Name: gcc
Version: %{gcc_version}
-Release: %{gcc_release}%{?dist}.1
+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
@@ -3616,8 +3616,37 @@ end
%endif
%changelog
-* Thu Jul 18 2024 Fedora Release Engineering - 14.1.1-7.1
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
+* Thu Aug 1 2024 Jakub Jelinek 14.2.1-1
+- update from releases/gcc-14 branch
+ - GCC 14.2 release
+ - PRs analyzer/114899, c++/99241, c++/99242, c++/104981, c++/106760,
+ c++/111890, c++/115165, c++/115476, c++/115550, c++/115561,
+ c++/115583, c++/115623, c++/115754, c++/115783, c++/115865,
+ c++/115897, c++/115900, c++/115986, fortran/59104, fortran/84006,
+ fortran/93635, fortran/98534, fortran/99798, fortran/100027,
+ fortran/103115, fortran/103312, fortran/113363, fortran/115700,
+ ipa/111613, ipa/113291, ipa/113787, ipa/114207, ipa/115033,
+ ipa/115277, ipa/116055, libstdc++/113376, libstdc++/114387,
+ libstdc++/115399, libstdc++/115482, libstdc++/115522,
+ libstdc++/115585, libstdc++/115807, libstdc++/115854,
+ libstdc++/116070, middle-end/115527, middle-end/115836,
+ middle-end/115887, pch/115312, rtl-optimization/115049,
+ rtl-optimization/115565, target/87376, target/88236, target/97367,
+ target/98762, target/105090, target/113715, target/114759,
+ target/114890, target/114936, target/114988, target/115068,
+ target/115153, target/115188, target/115351, target/115389,
+ target/115456, target/115457, target/115459, target/115475,
+ target/115526, target/115554, target/115562, target/115591,
+ target/115611, target/115691, target/115725, target/115726,
+ target/115752, target/115763, target/115840, target/115872,
+ target/115978, target/115981, target/115988, target/116035,
+ testsuite/115826, testsuite/116061, tree-optimization/113673,
+ tree-optimization/115382, tree-optimization/115646,
+ tree-optimization/115669, tree-optimization/115694,
+ tree-optimization/115701, tree-optimization/115723,
+ tree-optimization/115841, tree-optimization/115843,
+ tree-optimization/115867, tree-optimization/115868,
+ tree-optimization/116034, tree-optimization/116057
* Mon Jul 1 2024 Jakub Jelinek 14.1.1-7
- update from releases/gcc-14 branch
diff --git a/gcc14-libstdc++-docs.patch b/gcc14-libstdc++-docs.patch
index b774935..0e0e0f9 100644
--- a/gcc14-libstdc++-docs.patch
+++ b/gcc14-libstdc++-docs.patch
@@ -4,7 +4,7 @@
FSF
-+ Release 14.1.1
++ Release 14.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 14.1.1 release,
++ for the 14.2.1 release,
+ online
for each GCC release
and
diff --git a/sources b/sources
index 11e157a..7eb2b89 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-SHA512 (gcc-14.1.1-20240701.tar.xz) = 1b68d02a9e6ddf7556a802ef672a9f3874faf5a66c0befc164838cc9fcdff10d5db4eea4a9f7e8312ccc881d41a696431d4d5d6486ef5d653da7c7fba945de6f
+SHA512 (gcc-14.2.1-20240801.tar.xz) = b21f0bfd5767d0ecb9c08ba3e3a605a841d4c6a6008bf9dd8b4c4da366d7e733600eb21095768bda91e5df6536c398bf4a941e44577aef7586e95f1d148a214f
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
SHA512 (newlib-cygwin-d45261f62a15f8abd94a1031020b9a9f455e4eed.tar.xz) = 31bfc19429797236e268e22b752c5abeabb9c0f39b1058634af8dab329b4f028fc72a35888193c9575f6cee5cf2c069669d79fcb4d4e3a4318f57413452f707d
SHA512 (nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz) = 941e763af8601b89f0e4ec48a2d68ae0a8e70ee1e6ba6859394b021ad7bd7d143cc529f3c35c08d7f84e5554980ddcc97cf05b6c4755c2bc36c91161b79e8cea
From 0425b2638c5296d474013d0276c369b19f5c8494 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Thu, 5 Sep 2024 12:47:04 +0200
Subject: [PATCH 20/41] 14.2.1-2
---
.gitignore | 1 +
gcc.spec | 20 +++++++++++++++++---
sources | 2 +-
3 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/.gitignore b/.gitignore
index 052e49a..a1be907 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,3 +23,4 @@
/gcc-14.1.1-20240620.tar.xz
/gcc-14.1.1-20240701.tar.xz
/gcc-14.2.1-20240801.tar.xz
+/gcc-14.2.1-20240905.tar.xz
diff --git a/gcc.spec b/gcc.spec
index 215bb29..55465e5 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,10 +1,10 @@
-%global DATE 20240801
-%global gitrev 43d4666d3d94934f11857a2fb9122c575be81801
+%global DATE 20240905
+%global gitrev b30927153ae4cc052bfa564cc3d302eaddaa2c1b
%global gcc_version 14.2.1
%global gcc_major 14
# 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 1
+%global gcc_release 2
%global nvptx_tools_gitrev 87ce9dc5999e5fca2e1d3478a30888d9864c9804
%global newlib_cygwin_gitrev d45261f62a15f8abd94a1031020b9a9f455e4eed
%global _unpackaged_files_terminate_build 0
@@ -3616,6 +3616,20 @@ end
%endif
%changelog
+* Thu Sep 5 2024 Jakub Jelinek 14.2.1-2
+- update from releases/gcc-14 branch
+ - PRs c++/88313, c++/112288, c++/115296, c++/115656, c++/116071, c++/116219,
+ c++/116223, c++/116327, c++/116384, fortran/108889, fortran/116530,
+ libstdc++/113663, libstdc++/116038, libstdc++/116381,
+ libstdc++/116549, lto/116361, target/85624, target/112108,
+ target/113384, target/115464, target/116007, target/116033,
+ target/116043, target/116174, target/116189, target/116287,
+ target/116295, target/116390, target/116407, target/116512,
+ testsuite/70150, tree-optimization/113281, tree-optimization/116156,
+ tree-optimization/116224, tree-optimization/116501
+ - add hint #34 to aarch64 sanitizer asm stubs if -mbranch-protection=standard
+ (#2306353)
+
* Thu Aug 1 2024 Jakub Jelinek 14.2.1-1
- update from releases/gcc-14 branch
- GCC 14.2 release
diff --git a/sources b/sources
index 7eb2b89..ee9c0c0 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-SHA512 (gcc-14.2.1-20240801.tar.xz) = b21f0bfd5767d0ecb9c08ba3e3a605a841d4c6a6008bf9dd8b4c4da366d7e733600eb21095768bda91e5df6536c398bf4a941e44577aef7586e95f1d148a214f
+SHA512 (gcc-14.2.1-20240905.tar.xz) = a1cb68b386633e86c65dedef88a10890f3d2fffb35ecc775bfe87caa0bd6a135858578311e3d8d4a9b09e65c0b90757e01aa081953866fcaf13242a96b697920
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
SHA512 (newlib-cygwin-d45261f62a15f8abd94a1031020b9a9f455e4eed.tar.xz) = 31bfc19429797236e268e22b752c5abeabb9c0f39b1058634af8dab329b4f028fc72a35888193c9575f6cee5cf2c069669d79fcb4d4e3a4318f57413452f707d
SHA512 (nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz) = 941e763af8601b89f0e4ec48a2d68ae0a8e70ee1e6ba6859394b021ad7bd7d143cc529f3c35c08d7f84e5554980ddcc97cf05b6c4755c2bc36c91161b79e8cea
From dc203d1b77666d6375f6e5e73dfa9d49a33392a3 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Thu, 12 Sep 2024 20:49:36 +0200
Subject: [PATCH 21/41] 14.2.1-3
---
.gitignore | 1 +
gcc.spec | 15 +++++--
gcc14-pr116621.patch | 100 +++++++++++++++++++++++++++++++++++++++++++
sources | 2 +-
4 files changed, 114 insertions(+), 4 deletions(-)
create mode 100644 gcc14-pr116621.patch
diff --git a/.gitignore b/.gitignore
index a1be907..e67d87e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,3 +24,4 @@
/gcc-14.1.1-20240701.tar.xz
/gcc-14.2.1-20240801.tar.xz
/gcc-14.2.1-20240905.tar.xz
+/gcc-14.2.1-20240912.tar.xz
diff --git a/gcc.spec b/gcc.spec
index 55465e5..8b0d09d 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,10 +1,10 @@
-%global DATE 20240905
-%global gitrev b30927153ae4cc052bfa564cc3d302eaddaa2c1b
+%global DATE 20240912
+%global gitrev c7a1c1a4bf73b3cb4943c428085fe5cbb433cde4
%global gcc_version 14.2.1
%global gcc_major 14
# 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 2
+%global gcc_release 3
%global nvptx_tools_gitrev 87ce9dc5999e5fca2e1d3478a30888d9864c9804
%global newlib_cygwin_gitrev d45261f62a15f8abd94a1031020b9a9f455e4eed
%global _unpackaged_files_terminate_build 0
@@ -305,6 +305,7 @@ Patch9: gcc14-Wno-format-security.patch
Patch10: gcc14-rh1574936.patch
Patch11: gcc14-d-shared-libphobos.patch
Patch12: gcc14-pr101523.patch
+Patch13: gcc14-pr116621.patch
Patch50: isl-rh2155127.patch
@@ -906,6 +907,7 @@ so that there cannot be any synchronization problems.
%endif
%patch -P11 -p0 -b .d-shared-libphobos~
%patch -P12 -p1 -b .pr101523~
+%patch -P13 -p0 -b .pr116621~
%patch -P50 -p0 -b .rh2155127~
touch -r isl-0.24/m4/ax_prog_cxx_for_build.m4 isl-0.24/m4/ax_prog_cc_for_build.m4
@@ -3616,6 +3618,13 @@ end
%endif
%changelog
+* Thu Sep 12 2024 Jakub Jelinek 14.2.1-3
+- update from releases/gcc-14 branch
+ - PRs c++/116276, c++/116320, c++/116449, c++/116567, c++/116606,
+ c++/116636, ipa/116410, libstdc++/116159, libstdc++/116641,
+ lto/116614, target/116617
+- backport x86_64 va_arg fix (PR target/116621)
+
* Thu Sep 5 2024 Jakub Jelinek 14.2.1-2
- update from releases/gcc-14 branch
- PRs c++/88313, c++/112288, c++/115296, c++/115656, c++/116071, c++/116219,
diff --git a/gcc14-pr116621.patch b/gcc14-pr116621.patch
new file mode 100644
index 0000000..caa9e63
--- /dev/null
+++ b/gcc14-pr116621.patch
@@ -0,0 +1,100 @@
+Author: H.J. Lu
+Date: Fri Sep 6 05:24:07 2024 -0700
+
+x86-64: Don't use temp for argument in a TImode register
+
+Don't use temp for a PARALLEL BLKmode argument of an EXPR_LIST expression
+in a TImode register. Otherwise, the TImode variable will be put in
+the GPR save area which guarantees only 8-byte alignment.
+
+ PR target/116621
+ * config/i386/i386.cc (ix86_gimplify_va_arg): Don't use temp for
+ a PARALLEL BLKmode container of an EXPR_LIST expression in a
+ TImode register.
+
+ * gcc.target/i386/pr116621.c: New test.
+
+Signed-off-by: H.J. Lu
+
+--- gcc/config/i386/i386.cc
++++ gcc/config/i386/i386.cc
+@@ -4908,13 +4908,31 @@ ix86_gimplify_va_arg (tree valist, tree type, gimple_seq *pre_p,
+
+ examine_argument (nat_mode, type, 0, &needed_intregs, &needed_sseregs);
+
+- need_temp = (!REG_P (container)
++ bool container_in_reg = false;
++ if (REG_P (container))
++ container_in_reg = true;
++ else if (GET_CODE (container) == PARALLEL
++ && GET_MODE (container) == BLKmode
++ && XVECLEN (container, 0) == 1)
++ {
++ /* Check if it is a PARALLEL BLKmode container of an EXPR_LIST
++ expression in a TImode register. In this case, temp isn't
++ needed. Otherwise, the TImode variable will be put in the
++ GPR save area which guarantees only 8-byte alignment. */
++ rtx x = XVECEXP (container, 0, 0);
++ if (GET_CODE (x) == EXPR_LIST
++ && REG_P (XEXP (x, 0))
++ && XEXP (x, 1) == const0_rtx)
++ container_in_reg = true;
++ }
++
++ need_temp = (!container_in_reg
+ && ((needed_intregs && TYPE_ALIGN (type) > 64)
+ || TYPE_ALIGN (type) > 128));
+
+ /* In case we are passing structure, verify that it is consecutive block
+ on the register save area. If not we need to do moves. */
+- if (!need_temp && !REG_P (container))
++ if (!need_temp && !container_in_reg)
+ {
+ /* Verify that all registers are strictly consecutive */
+ if (SSE_REGNO_P (REGNO (XEXP (XVECEXP (container, 0, 0), 0))))
+--- gcc/testsuite/gcc.target/i386/pr116621.c
++++ gcc/testsuite/gcc.target/i386/pr116621.c
+@@ -0,0 +1,43 @@
++/* { dg-do run } */
++/* { dg-options "-O2" } */
++
++#include
++#include
++
++union S8302
++{
++ union
++ {
++ double b;
++ int c;
++ } a;
++ long double d;
++ unsigned short int f[5];
++};
++
++union S8302 s8302;
++extern void check8302va (int i, ...);
++
++int
++main (void)
++{
++ memset (&s8302, '\0', sizeof (s8302));
++ s8302.a.b = -221438.250000;
++ check8302va (1, s8302);
++ return 0;
++}
++
++__attribute__((noinline, noclone))
++void
++check8302va (int z, ...)
++{
++ union S8302 arg, *p;
++ va_list ap;
++
++ __builtin_va_start (ap, z);
++ p = &s8302;
++ arg = __builtin_va_arg (ap, union S8302);
++ if (p->a.b != arg.a.b)
++ __builtin_abort ();
++ __builtin_va_end (ap);
++}
diff --git a/sources b/sources
index ee9c0c0..0010d99 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-SHA512 (gcc-14.2.1-20240905.tar.xz) = a1cb68b386633e86c65dedef88a10890f3d2fffb35ecc775bfe87caa0bd6a135858578311e3d8d4a9b09e65c0b90757e01aa081953866fcaf13242a96b697920
+SHA512 (gcc-14.2.1-20240912.tar.xz) = 9a36fd5c2211f348bf18e887861c9123745bfa40837a5f92b1cd0ee0820edb7ef59094caac06870f00ef0d0305f674a5c23cc5aec940132cf581cd18c0368bb2
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
SHA512 (newlib-cygwin-d45261f62a15f8abd94a1031020b9a9f455e4eed.tar.xz) = 31bfc19429797236e268e22b752c5abeabb9c0f39b1058634af8dab329b4f028fc72a35888193c9575f6cee5cf2c069669d79fcb4d4e3a4318f57413452f707d
SHA512 (nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz) = 941e763af8601b89f0e4ec48a2d68ae0a8e70ee1e6ba6859394b021ad7bd7d143cc529f3c35c08d7f84e5554980ddcc97cf05b6c4755c2bc36c91161b79e8cea
From d021080ea76b57941380df631582f8109f8ede6f Mon Sep 17 00:00:00 2001
From: Siddhesh Poyarekar
Date: Tue, 24 Sep 2024 22:02:48 -0400
Subject: [PATCH 22/41] Default tuning to power 10 for RHEL10 and later
---
gcc.spec | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/gcc.spec b/gcc.spec
index 8b0d09d..f6cf2ec 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -4,7 +4,7 @@
%global gcc_major 14
# 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 3
+%global gcc_release 4
%global nvptx_tools_gitrev 87ce9dc5999e5fca2e1d3478a30888d9864c9804
%global newlib_cygwin_gitrev d45261f62a15f8abd94a1031020b9a9f455e4eed
%global _unpackaged_files_terminate_build 0
@@ -1190,7 +1190,11 @@ CONFIGURE_OPTS="\
%endif
%ifarch ppc64le
%if 0%{?rhel} >= 9
+%if 0%{?rhel} >= 10
+ --with-cpu-32=power9 --with-tune-32=power10 --with-cpu-64=power9 --with-tune-64=power10 \
+%else
--with-cpu-32=power9 --with-tune-32=power9 --with-cpu-64=power9 --with-tune-64=power9 \
+%endif
%else
--with-cpu-32=power8 --with-tune-32=power8 --with-cpu-64=power8 --with-tune-64=power8 \
%endif
@@ -3618,6 +3622,9 @@ end
%endif
%changelog
+* Wed Sep 25 2024 Siddhesh Poyarekar 14.2.1-4
+- Default tuning to power 10 for RHEL10 and later.
+
* Thu Sep 12 2024 Jakub Jelinek 14.2.1-3
- update from releases/gcc-14 branch
- PRs c++/116276, c++/116320, c++/116449, c++/116567, c++/116606,
From a706a6fd254c547da3492deb3b80a3855fc6dd5c Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Mon, 30 Sep 2024 18:28:17 +0200
Subject: [PATCH 23/41] Use https:// instead of git:// in git URLs.
---
gcc.spec | 2 +-
update-gcc.sh | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/gcc.spec b/gcc.spec
index f6cf2ec..15a2c71 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -171,7 +171,7 @@ Source0: gcc-%{version}-%{DATE}.tar.xz
Source1: nvptx-tools-%{nvptx_tools_gitrev}.tar.xz
# The source for nvptx-newlib package was pulled from upstream's vcs. Use the
# following commands to generate the tarball:
-# git clone git://sourceware.org/git/newlib-cygwin.git newlib-cygwin-dir.tmp
+# git clone https://sourceware.org/git/newlib-cygwin.git newlib-cygwin-dir.tmp
# git --git-dir=newlib-cygwin-dir.tmp/.git archive --prefix=newlib-cygwin-%%{newlib_cygwin_gitrev}/ %%{newlib_cygwin_gitrev} ":(exclude)newlib/libc/sys/linux/include/rpc/*.[hx]" | xz -9e > newlib-cygwin-%%{newlib_cygwin_gitrev}.tar.xz
# rm -rf newlib-cygwin-dir.tmp
Source2: newlib-cygwin-%{newlib_cygwin_gitrev}.tar.xz
diff --git a/update-gcc.sh b/update-gcc.sh
index 93160c9..47d7d70 100755
--- a/update-gcc.sh
+++ b/update-gcc.sh
@@ -10,9 +10,9 @@ v=`sed -n 's/^%global gcc_version //p' gcc.spec`
p=`sed -n 's/^%global gitrev //p' gcc.spec`
h=$1
if [ "$#" -ge 2 ]; then
- git clone --dissociate --reference $2 git://gcc.gnu.org/git/gcc.git gcc-dir.tmp
+ git clone --dissociate --reference $2 https://gcc.gnu.org/git/gcc.git gcc-dir.tmp
else
- git clone git://gcc.gnu.org/git/gcc.git gcc-dir.tmp
+ git clone https://gcc.gnu.org/git/gcc.git gcc-dir.tmp
fi
git --git-dir=gcc-dir.tmp/.git fetch origin $h
d=`date --iso | sed 's/-//g'`
From 8cd5593dfc446499c94c4385edd31bda436e7d9c Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Fri, 25 Oct 2024 17:45:57 +0200
Subject: [PATCH 24/41] 14.2.1-5
---
.gitignore | 1 +
gcc.spec | 36 ++++++++++++++++++++++++++++++++----
sources | 2 +-
3 files changed, 34 insertions(+), 5 deletions(-)
diff --git a/.gitignore b/.gitignore
index e67d87e..457da17 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,4 @@
/gcc-14.2.1-20240801.tar.xz
/gcc-14.2.1-20240905.tar.xz
/gcc-14.2.1-20240912.tar.xz
+/gcc-14.2.1-20241025.tar.xz
diff --git a/gcc.spec b/gcc.spec
index 15a2c71..185f371 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,10 +1,10 @@
-%global DATE 20240912
-%global gitrev c7a1c1a4bf73b3cb4943c428085fe5cbb433cde4
+%global DATE 20241025
+%global gitrev 3f6cf880bdadb4404d5540bad605ceec58261359
%global gcc_version 14.2.1
%global gcc_major 14
# 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 5
%global nvptx_tools_gitrev 87ce9dc5999e5fca2e1d3478a30888d9864c9804
%global newlib_cygwin_gitrev d45261f62a15f8abd94a1031020b9a9f455e4eed
%global _unpackaged_files_terminate_build 0
@@ -3622,8 +3622,36 @@ end
%endif
%changelog
+* Fri Oct 25 2024 Jakub Jelinek 14.2.1-5
+- update from releases/gcc-14 branch
+ - PRs ada/114593, ada/114636, ada/114640, ada/115535, ada/116190,
+ ada/116430, ada/116551, c/116726, c/117230, c++/96097, c++/115361,
+ c++/115987, c++/116369, c++/116418, c++/116424, c++/116476,
+ c++/116492, c++/116534, c++/116676, c++/116678, c++/116929,
+ c++/117054, c++/117107, c++/117259, c++/117274, fortran/84868,
+ fortran/100273, ipa/109985, ipa/115815, libstdc++/37475,
+ libstdc++/108619, libstdc++/116529, libstdc++/116754,
+ libstdc++/116755, libstdc++/116777, libstdc++/116857,
+ libstdc++/117085, libstdc++/117094, libstdc++/117135,
+ middle-end/115110, middle-end/115426, middle-end/115641,
+ middle-end/116258, middle-end/116259, middle-end/116454,
+ middle-end/116891, middle-end/116898, middle-end/116899,
+ middle-end/117086, middle-end/117249, sanitizer/117209, target/115860,
+ target/116237, target/116627, target/116738, target/116839,
+ target/116883, target/116921, target/116953, target/116962,
+ target/117116, target/117159, target/117240, testsuite/116238,
+ tree-optimization/116166, tree-optimization/116258,
+ tree-optimization/116274, tree-optimization/116290,
+ tree-optimization/116380, tree-optimization/116460,
+ tree-optimization/116481, tree-optimization/116585,
+ tree-optimization/116610, tree-optimization/116768,
+ tree-optimization/116850, tree-optimization/116879,
+ tree-optimization/116907, tree-optimization/116982,
+ tree-optimization/116990, tree-optimization/117041,
+ tree-optimization/117104
+
* Wed Sep 25 2024 Siddhesh Poyarekar 14.2.1-4
-- Default tuning to power 10 for RHEL10 and later.
+- default tuning to power 10 for RHEL10 and later
* Thu Sep 12 2024 Jakub Jelinek 14.2.1-3
- update from releases/gcc-14 branch
diff --git a/sources b/sources
index 0010d99..27042d2 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-SHA512 (gcc-14.2.1-20240912.tar.xz) = 9a36fd5c2211f348bf18e887861c9123745bfa40837a5f92b1cd0ee0820edb7ef59094caac06870f00ef0d0305f674a5c23cc5aec940132cf581cd18c0368bb2
+SHA512 (gcc-14.2.1-20241025.tar.xz) = 1729619d7c0ebdb6801f692f213ccdd2f393d28d2c2acc3cedc897992c0996d45d760e9f4bd4d6f3ef16c7343a1e24c21c45989fa6c08ba1556fa8c9a5662d5f
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
SHA512 (newlib-cygwin-d45261f62a15f8abd94a1031020b9a9f455e4eed.tar.xz) = 31bfc19429797236e268e22b752c5abeabb9c0f39b1058634af8dab329b4f028fc72a35888193c9575f6cee5cf2c069669d79fcb4d4e3a4318f57413452f707d
SHA512 (nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz) = 941e763af8601b89f0e4ec48a2d68ae0a8e70ee1e6ba6859394b021ad7bd7d143cc529f3c35c08d7f84e5554980ddcc97cf05b6c4755c2bc36c91161b79e8cea
From 3c526fa26bef8d41eeeef476e14bb5fa2c421aa4 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Fri, 25 Oct 2024 17:59:54 +0200
Subject: [PATCH 25/41] 14.2.1-5
---
gcc.spec | 2 -
gcc14-pr116621.patch | 100 -------------------------------------------
2 files changed, 102 deletions(-)
delete mode 100644 gcc14-pr116621.patch
diff --git a/gcc.spec b/gcc.spec
index 185f371..6b499c8 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -305,7 +305,6 @@ Patch9: gcc14-Wno-format-security.patch
Patch10: gcc14-rh1574936.patch
Patch11: gcc14-d-shared-libphobos.patch
Patch12: gcc14-pr101523.patch
-Patch13: gcc14-pr116621.patch
Patch50: isl-rh2155127.patch
@@ -907,7 +906,6 @@ so that there cannot be any synchronization problems.
%endif
%patch -P11 -p0 -b .d-shared-libphobos~
%patch -P12 -p1 -b .pr101523~
-%patch -P13 -p0 -b .pr116621~
%patch -P50 -p0 -b .rh2155127~
touch -r isl-0.24/m4/ax_prog_cxx_for_build.m4 isl-0.24/m4/ax_prog_cc_for_build.m4
diff --git a/gcc14-pr116621.patch b/gcc14-pr116621.patch
deleted file mode 100644
index caa9e63..0000000
--- a/gcc14-pr116621.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-Author: H.J. Lu
-Date: Fri Sep 6 05:24:07 2024 -0700
-
-x86-64: Don't use temp for argument in a TImode register
-
-Don't use temp for a PARALLEL BLKmode argument of an EXPR_LIST expression
-in a TImode register. Otherwise, the TImode variable will be put in
-the GPR save area which guarantees only 8-byte alignment.
-
- PR target/116621
- * config/i386/i386.cc (ix86_gimplify_va_arg): Don't use temp for
- a PARALLEL BLKmode container of an EXPR_LIST expression in a
- TImode register.
-
- * gcc.target/i386/pr116621.c: New test.
-
-Signed-off-by: H.J. Lu
-
---- gcc/config/i386/i386.cc
-+++ gcc/config/i386/i386.cc
-@@ -4908,13 +4908,31 @@ ix86_gimplify_va_arg (tree valist, tree type, gimple_seq *pre_p,
-
- examine_argument (nat_mode, type, 0, &needed_intregs, &needed_sseregs);
-
-- need_temp = (!REG_P (container)
-+ bool container_in_reg = false;
-+ if (REG_P (container))
-+ container_in_reg = true;
-+ else if (GET_CODE (container) == PARALLEL
-+ && GET_MODE (container) == BLKmode
-+ && XVECLEN (container, 0) == 1)
-+ {
-+ /* Check if it is a PARALLEL BLKmode container of an EXPR_LIST
-+ expression in a TImode register. In this case, temp isn't
-+ needed. Otherwise, the TImode variable will be put in the
-+ GPR save area which guarantees only 8-byte alignment. */
-+ rtx x = XVECEXP (container, 0, 0);
-+ if (GET_CODE (x) == EXPR_LIST
-+ && REG_P (XEXP (x, 0))
-+ && XEXP (x, 1) == const0_rtx)
-+ container_in_reg = true;
-+ }
-+
-+ need_temp = (!container_in_reg
- && ((needed_intregs && TYPE_ALIGN (type) > 64)
- || TYPE_ALIGN (type) > 128));
-
- /* In case we are passing structure, verify that it is consecutive block
- on the register save area. If not we need to do moves. */
-- if (!need_temp && !REG_P (container))
-+ if (!need_temp && !container_in_reg)
- {
- /* Verify that all registers are strictly consecutive */
- if (SSE_REGNO_P (REGNO (XEXP (XVECEXP (container, 0, 0), 0))))
---- gcc/testsuite/gcc.target/i386/pr116621.c
-+++ gcc/testsuite/gcc.target/i386/pr116621.c
-@@ -0,0 +1,43 @@
-+/* { dg-do run } */
-+/* { dg-options "-O2" } */
-+
-+#include
-+#include
-+
-+union S8302
-+{
-+ union
-+ {
-+ double b;
-+ int c;
-+ } a;
-+ long double d;
-+ unsigned short int f[5];
-+};
-+
-+union S8302 s8302;
-+extern void check8302va (int i, ...);
-+
-+int
-+main (void)
-+{
-+ memset (&s8302, '\0', sizeof (s8302));
-+ s8302.a.b = -221438.250000;
-+ check8302va (1, s8302);
-+ return 0;
-+}
-+
-+__attribute__((noinline, noclone))
-+void
-+check8302va (int z, ...)
-+{
-+ union S8302 arg, *p;
-+ va_list ap;
-+
-+ __builtin_va_start (ap, z);
-+ p = &s8302;
-+ arg = __builtin_va_arg (ap, union S8302);
-+ if (p->a.b != arg.a.b)
-+ __builtin_abort ();
-+ __builtin_va_end (ap);
-+}
From 02c34dfa3627ef05d676d30e152a66e77b58529b Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Mon, 4 Nov 2024 16:02:03 +0100
Subject: [PATCH 26/41] 14.2.1-6
---
.gitignore | 1 +
gcc.spec | 13 ++++++++++---
sources | 2 +-
3 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/.gitignore b/.gitignore
index 457da17..a0bbeb8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,3 +26,4 @@
/gcc-14.2.1-20240905.tar.xz
/gcc-14.2.1-20240912.tar.xz
/gcc-14.2.1-20241025.tar.xz
+/gcc-14.2.1-20241104.tar.xz
diff --git a/gcc.spec b/gcc.spec
index 6b499c8..e74627b 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,10 +1,10 @@
-%global DATE 20241025
-%global gitrev 3f6cf880bdadb4404d5540bad605ceec58261359
+%global DATE 20241104
+%global gitrev b84ce6a258e01f6559a1855b5f1d1ba4e69a927b
%global gcc_version 14.2.1
%global gcc_major 14
# 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 5
+%global gcc_release 6
%global nvptx_tools_gitrev 87ce9dc5999e5fca2e1d3478a30888d9864c9804
%global newlib_cygwin_gitrev d45261f62a15f8abd94a1031020b9a9f455e4eed
%global _unpackaged_files_terminate_build 0
@@ -3620,6 +3620,13 @@ end
%endif
%changelog
+* Mon Nov 4 2024 Jakub Jelinek 14.2.1-6
+- update from releases/gcc-14 branch
+ - PRs fortran/79685, jit/117275, libstdc++/117321, libstdc++/117406,
+ middle-end/117354, rtl-optimization/116783, rtl-optimization/117327,
+ target/116415, target/117296, target/117318, tree-optimization/107467,
+ tree-optimization/117287
+
* Fri Oct 25 2024 Jakub Jelinek 14.2.1-5
- update from releases/gcc-14 branch
- PRs ada/114593, ada/114636, ada/114640, ada/115535, ada/116190,
diff --git a/sources b/sources
index 27042d2..df7802d 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-SHA512 (gcc-14.2.1-20241025.tar.xz) = 1729619d7c0ebdb6801f692f213ccdd2f393d28d2c2acc3cedc897992c0996d45d760e9f4bd4d6f3ef16c7343a1e24c21c45989fa6c08ba1556fa8c9a5662d5f
+SHA512 (gcc-14.2.1-20241104.tar.xz) = 4a453e1b7e2712fd2a12d28cf2aaf8e76c789f7e747218cdf867eaca84e381305bf119c7db873c5c3f0981657dbefcded77ad74a0960034b95232d906e4b02d0
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
SHA512 (newlib-cygwin-d45261f62a15f8abd94a1031020b9a9f455e4eed.tar.xz) = 31bfc19429797236e268e22b752c5abeabb9c0f39b1058634af8dab329b4f028fc72a35888193c9575f6cee5cf2c069669d79fcb4d4e3a4318f57413452f707d
SHA512 (nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz) = 941e763af8601b89f0e4ec48a2d68ae0a8e70ee1e6ba6859394b021ad7bd7d143cc529f3c35c08d7f84e5554980ddcc97cf05b6c4755c2bc36c91161b79e8cea
From 806e75093dd637270102e8d2896b9c6c40015166 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Thu, 5 Dec 2024 20:07:10 +0100
Subject: [PATCH 27/41] Fix up #2330362
---
gcc.spec | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/gcc.spec b/gcc.spec
index e74627b..56d6445 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -931,7 +931,7 @@ LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi
sed -i -e '/ldp_fusion/s/Init(1)/Init(0)/' gcc/config/aarch64/aarch64.opt
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
+sed -i -e 's/m_report_bug = false;/m_report_bug = true;/' gcc/diagnostic.cc
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
@@ -3620,6 +3620,8 @@ end
%endif
%changelog
+- fix up -freport-bug default (#2330362)
+
* Mon Nov 4 2024 Jakub Jelinek 14.2.1-6
- update from releases/gcc-14 branch
- PRs fortran/79685, jit/117275, libstdc++/117321, libstdc++/117406,
From 82653994cffc3120d34d3f49c6e3b01ff824f8c1 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Thu, 5 Dec 2024 20:15:14 +0100
Subject: [PATCH 28/41] Also revert -mearly-ldp-fusion and -mlate-ldp-fusion
default hack
---
gcc.spec | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc.spec b/gcc.spec
index 56d6445..52dd90a 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -928,8 +928,6 @@ cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h
LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi
-sed -i -e '/ldp_fusion/s/Init(1)/Init(0)/' gcc/config/aarch64/aarch64.opt
-
sed -i -e 's/Common Driver Var(flag_report_bug)/& Init(1)/' gcc/common.opt
sed -i -e 's/m_report_bug = false;/m_report_bug = true;/' gcc/diagnostic.cc
@@ -3621,6 +3619,8 @@ end
%changelog
- fix up -freport-bug default (#2330362)
+- revert -mearly-ldp-fusion and -mlate-ldp-fusion default to enabled on
+ aarch64 to match upstream
* Mon Nov 4 2024 Jakub Jelinek 14.2.1-6
- update from releases/gcc-14 branch
From e48becc49a47cc974fdae2dec9c325c4286b93b5 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Thu, 9 Jan 2025 09:20:53 +0100
Subject: [PATCH 29/41] gcc-15.0.0-0.3
---
.gitignore | 29 +-
gcc.spec | 651 +++---------------
gcc14-pr101523.patch | 76 --
...y.patch => gcc15-Wno-format-security.patch | 18 +-
...os.patch => gcc15-d-shared-libphobos.patch | 0
...tch => gcc15-fortran-fdec-duplicates.patch | 0
gcc14-hack.patch => gcc15-hack.patch | 88 ++-
gcc14-isl-dl.patch => gcc15-isl-dl.patch | 8 +-
gcc14-isl-dl2.patch => gcc15-isl-dl2.patch | 8 +-
...atch => gcc15-libgomp-omp_h-multilib.patch | 0
...+-docs.patch => gcc15-libstdc++-docs.patch | 10 +-
...path.patch => gcc15-libtool-no-rpath.patch | 0
...-needed.patch => gcc15-no-add-needed.patch | 0
gcc15-pr118206.patch | 581 ++++++++++++++++
gcc15-pr118362.patch | 17 +
...4-rh1574936.patch => gcc15-rh1574936.patch | 0
...atch => gcc15-sparc-config-detection.patch | 0
sources | 4 +-
18 files changed, 805 insertions(+), 685 deletions(-)
delete mode 100644 gcc14-pr101523.patch
rename gcc14-Wno-format-security.patch => gcc15-Wno-format-security.patch (80%)
rename gcc14-d-shared-libphobos.patch => gcc15-d-shared-libphobos.patch (100%)
rename gcc14-fortran-fdec-duplicates.patch => gcc15-fortran-fdec-duplicates.patch (100%)
rename gcc14-hack.patch => gcc15-hack.patch (57%)
rename gcc14-isl-dl.patch => gcc15-isl-dl.patch (99%)
rename gcc14-isl-dl2.patch => gcc15-isl-dl2.patch (89%)
rename gcc14-libgomp-omp_h-multilib.patch => gcc15-libgomp-omp_h-multilib.patch (100%)
rename gcc14-libstdc++-docs.patch => gcc15-libstdc++-docs.patch (74%)
rename gcc14-libtool-no-rpath.patch => gcc15-libtool-no-rpath.patch (100%)
rename gcc14-no-add-needed.patch => gcc15-no-add-needed.patch (100%)
create mode 100644 gcc15-pr118206.patch
create mode 100644 gcc15-pr118362.patch
rename gcc14-rh1574936.patch => gcc15-rh1574936.patch (100%)
rename gcc14-sparc-config-detection.patch => gcc15-sparc-config-detection.patch (100%)
diff --git a/.gitignore b/.gitignore
index a0bbeb8..b074da3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,29 +1,4 @@
-/gcc-14.0.1-20240113.tar.xz
/isl-0.24.tar.bz2
-/newlib-cygwin-5f15d7c5817b07a6b18cbab17342c95cb7b42be4.tar.xz
-/nvptx-tools-c5ad8ada3e86d96b10a9d352b7a764f801478ba6.tar.xz
-/gcc-14.0.1-20240118.tar.xz
-/newlib-cygwin-d45261f62a15f8abd94a1031020b9a9f455e4eed.tar.xz
-/gcc-14.0.1-20240125.tar.xz
-/gcc-14.0.1-20240127.tar.xz
-/gcc-14.0.1-20240207.tar.xz
-/gcc-14.0.1-20240208.tar.xz
-/gcc-14.0.1-20240217.tar.xz
-/gcc-14.0.1-20240228.tar.xz
-/gcc-14.0.1-20240316.tar.xz
-/gcc-14.0.1-20240328.tar.xz
-/gcc-14.0.1-20240410.tar.xz
-/gcc-14.0.1-20240411.tar.xz
-/gcc-14.0.1-20240430.tar.xz
-/nvptx-tools-9962793f41e016318dc5eca07ae602041cf526ff.tar.xz
-/gcc-14.1.1-20240508.tar.xz
-/gcc-14.1.1-20240522.tar.xz
-/gcc-14.1.1-20240607.tar.xz
/nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz
-/gcc-14.1.1-20240620.tar.xz
-/gcc-14.1.1-20240701.tar.xz
-/gcc-14.2.1-20240801.tar.xz
-/gcc-14.2.1-20240905.tar.xz
-/gcc-14.2.1-20240912.tar.xz
-/gcc-14.2.1-20241025.tar.xz
-/gcc-14.2.1-20241104.tar.xz
+/gcc-15.0.0-20250109.tar.xz
+/newlib-cygwin-2e4db338ac125579d555aeee516e48588a628a16.tar.xz
diff --git a/gcc.spec b/gcc.spec
index 52dd90a..8656fd3 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,12 +1,12 @@
-%global DATE 20241104
-%global gitrev b84ce6a258e01f6559a1855b5f1d1ba4e69a927b
-%global gcc_version 14.2.1
-%global gcc_major 14
+%global DATE 20250109
+%global gitrev f890bd2c90be240213d8f1023aed4ad9647a293c
+%global gcc_version 15.0.0
+%global gcc_major 15
# 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 6
+%global gcc_release 0
%global nvptx_tools_gitrev 87ce9dc5999e5fca2e1d3478a30888d9864c9804
-%global newlib_cygwin_gitrev d45261f62a15f8abd94a1031020b9a9f455e4eed
+%global newlib_cygwin_gitrev 2e4db338ac125579d555aeee516e48588a628a16
%global _unpackaged_files_terminate_build 0
%if 0%{?fedora:1}
%global _performance_build 1
@@ -143,7 +143,7 @@
Summary: Various compilers (C, C++, Objective-C, ...)
Name: gcc
Version: %{gcc_version}
-Release: %{gcc_release}%{?dist}
+Release: %{gcc_release}.3%{?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
@@ -191,11 +191,8 @@ URL: http://gcc.gnu.org
# Need binutils which support -plugin
# Need binutils which support .loc view >= 2.30
# Need binutils which support --generate-missing-build-notes=yes >= 2.31
-%if 0%{?fedora} >= 29 || 0%{?rhel} > 7
-BuildRequires: binutils >= 2.31
-%else
-BuildRequires: binutils >= 2.24
-%endif
+# Need binutils which support .base64 >= 2.43
+BuildRequires: binutils >= 2.43
# While gcc doesn't include statically linked binaries, during testing
# -static is used several times.
BuildRequires: glibc-static
@@ -262,11 +259,8 @@ Requires: cpp = %{version}-%{release}
# Need binutils that support -plugin
# Need binutils that support .loc view >= 2.30
# Need binutils which support --generate-missing-build-notes=yes >= 2.31
-%if 0%{?fedora} >= 29 || 0%{?rhel} > 7
-Requires: binutils >= 2.31
-%else
-Requires: binutils >= 2.24
-%endif
+# Need binutils that support .base64 >= 2.43
+Requires: binutils >= 2.43
# Make sure gdb will understand DW_FORM_strp
Conflicts: gdb < 5.1-2
Requires: glibc-devel >= 2.2.90-12
@@ -293,22 +287,23 @@ Provides: bundled(libbacktrace)
Provides: bundled(libffi)
Provides: gcc(major) = %{gcc_major}
-Patch0: gcc14-hack.patch
-Patch2: gcc14-sparc-config-detection.patch
-Patch3: gcc14-libgomp-omp_h-multilib.patch
-Patch4: gcc14-libtool-no-rpath.patch
-Patch5: gcc14-isl-dl.patch
-Patch6: gcc14-isl-dl2.patch
-Patch7: gcc14-libstdc++-docs.patch
-Patch8: gcc14-no-add-needed.patch
-Patch9: gcc14-Wno-format-security.patch
-Patch10: gcc14-rh1574936.patch
-Patch11: gcc14-d-shared-libphobos.patch
-Patch12: gcc14-pr101523.patch
+Patch0: gcc15-hack.patch
+Patch2: gcc15-sparc-config-detection.patch
+Patch3: gcc15-libgomp-omp_h-multilib.patch
+Patch4: gcc15-libtool-no-rpath.patch
+Patch5: gcc15-isl-dl.patch
+Patch6: gcc15-isl-dl2.patch
+Patch7: gcc15-libstdc++-docs.patch
+Patch8: gcc15-no-add-needed.patch
+Patch9: gcc15-Wno-format-security.patch
+Patch10: gcc15-rh1574936.patch
+Patch11: gcc15-d-shared-libphobos.patch
+Patch12: gcc15-pr118206.patch
+Patch13: gcc15-pr118362.patch
Patch50: isl-rh2155127.patch
-Patch100: gcc14-fortran-fdec-duplicates.patch
+Patch100: gcc15-fortran-fdec-duplicates.patch
# On ARM EABI systems, we do want -gnueabi to be part of the
# target triple.
@@ -606,6 +601,20 @@ Requires: libgccjit = %{version}-%{release}
%description -n libgccjit-devel
This package contains header files and documentation for GCC JIT front-end.
+%package -n libgdiagnostics
+Summary: Library for emitting diagnostics
+
+%description -n libgdiagnostics
+This package contains libgdiagnostics shared library and sarif-replay program.
+
+%package -n libgdiagnostics-devel
+Summary: Support for emitting diagnostics
+Requires: libgdiagnostics = %{version}-%{release}
+
+%description -n libgdiagnostics-devel
+This package contains header files and documentation for the libgdiagnostics
+library.
+
%package -n libquadmath
Summary: GCC __float128 shared support library
@@ -905,7 +914,8 @@ so that there cannot be any synchronization problems.
%patch -P10 -p0 -b .rh1574936~
%endif
%patch -P11 -p0 -b .d-shared-libphobos~
-%patch -P12 -p1 -b .pr101523~
+%patch -P12 -p0 -b .pr118206~
+%patch -P13 -p0 -b .pr118362~
%patch -P50 -p0 -b .rh2155127~
touch -r isl-0.24/m4/ax_prog_cxx_for_build.m4 isl-0.24/m4/ax_prog_cc_for_build.m4
@@ -1304,7 +1314,7 @@ CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \
| sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \
XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
../../configure --disable-bootstrap --enable-host-shared \
- --enable-languages=jit $CONFIGURE_OPTS
+ --enable-languages=jit --enable-libgdiagnostics $CONFIGURE_OPTS
make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" all-gcc
cp -a gcc/libgccjit.so* ../gcc/
cd ../gcc/
@@ -1339,7 +1349,7 @@ cd ../..
# Copy various doc files here and there
cd ..
-mkdir -p rpm.doc/{gfortran,objc,gdc,libphobos,gm2,libgm2}
+mkdir -p rpm.doc/{gfortran,objc,gdc,libphobos,gm2,libgm2,libgdiagnostics-devel}
mkdir -p rpm.doc/go rpm.doc/libgo rpm.doc/libquadmath rpm.doc/libitm
mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/ada,gcc/jit,libstdc++-v3,libobjc,libgomp,libcc1,libatomic,libsanitizer}
@@ -1393,6 +1403,8 @@ done)
cp -p $i ../rpm.doc/libgo/$i.libgo
done)
%endif
+(cd gcc/doc/libgdiagnostics; make html; \
+mv _build/html ../../../rpm.doc/libgdiagnostics-devel/html )
rm -f rpm.doc/changelogs/gcc/ChangeLog.[1-9]
find rpm.doc -name \*ChangeLog\* | xargs bzip2 -9
@@ -1445,6 +1457,7 @@ cd obj-offload-nvptx-none
make prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \
infodir=%{buildroot}%{_infodir} install
rm -rf %{buildroot}%{_prefix}/libexec/gcc/nvptx-none/%{gcc_major}/install-tools
+rm -rf %{buildroot}%{_prefix}/libexec/gcc/nvptx-none/%{gcc_major}/g++-mapper-server
rm -rf %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/{install-tools,plugin,cc1,cc1plus,f951}
rm -rf %{buildroot}%{_infodir} %{buildroot}%{_mandir}/man7 %{buildroot}%{_prefix}/share/locale
rm -rf %{buildroot}%{_prefix}/lib/gcc/nvptx-none/%{gcc_major}/{install-tools,plugin}
@@ -1482,6 +1495,7 @@ cd obj-offload-amdgcn-amdhsa
make prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \
infodir=%{buildroot}%{_infodir} install
rm -rf %{buildroot}%{_prefix}/libexec/gcc/amdgcn-amdhsa/%{gcc_major}/install-tools
+rm -rf %{buildroot}%{_prefix}/libexec/gcc/amdgcn-amdhsa/%{gcc_major}/g++-mapper-server
rm -rf %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/accel/amdgcn-amdhsa/{install-tools,plugin,cc1,cc1plus,f951}
rm -rf %{buildroot}%{_infodir} %{buildroot}%{_mandir}/man7 %{buildroot}%{_prefix}/share/locale
rm -rf %{buildroot}%{_prefix}/lib/gcc/amdgcn-amdhsa/%{gcc_major}/{install-tools,plugin}
@@ -1693,6 +1707,15 @@ cp -a ../gcc/jit/libgccjit*.h %{buildroot}%{_prefix}/include/
/usr/bin/install -c -m 644 objlibgccjit/gcc/doc/libgccjit.info %{buildroot}/%{_infodir}/
gzip -9 %{buildroot}/%{_infodir}/libgccjit.info
+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/
+
+sed -e 's,\.\./include/,../../../../include,' \
+ %{buildroot}%{_prefix}/%{_lib}/libstdc++.modules.json \
+ > $FULLPATH/libstdc++.modules.json
+
pushd $FULLPATH
if [ "%{_lib}" = "lib" ]; then
%if %{build_objc}
@@ -1713,7 +1736,7 @@ ln -sf ../../../libgphobos.so.5.* libgphobos.so
%endif
%if %{build_m2}
for i in cor iso log min pim; do
- ln -sf ../../../libm2$i.so.19.* libm2$i.so
+ ln -sf ../../../libm2$i.so.20.* libm2$i.so
done
%endif
%if %{build_libitm}
@@ -1748,7 +1771,7 @@ ln -sf ../../../../%{_lib}/libgphobos.so.5.* libgphobos.so
%endif
%if %{build_m2}
for i in cor iso log min pim; do
- ln -sf ../../../../%{_lib}/libm2$i.so.19.* libm2$i.so
+ ln -sf ../../../../%{_lib}/libm2$i.so.20.* libm2$i.so
done
%endif
%if %{build_libitm}
@@ -1897,8 +1920,8 @@ echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgphobos.so.5.* | sed 's
%if %{build_m2}
for i in cor iso log min pim; do
rm -f libm2$i.so
- echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libm2$i.so.19.* | sed 's,^.*libm,libm,'`' )' > libm2$i.so
- echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libm2$i.so.19.* | sed 's,^.*libm,libm,'`' )' > 64/libm2$i.so
+ echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libm2$i.so.20.* | sed 's,^.*libm,libm,'`' )' > libm2$i.so
+ echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libm2$i.so.20.* | sed 's,^.*libm,libm,'`' )' > 64/libm2$i.so
rm -f 64/m2/m2$i/*.{a,la}
ln -sf ../../libm2$i.so 64/m2/m2$i/
ln -sf ../../libm2$i.a 64/m2/m2$i/
@@ -2014,8 +2037,8 @@ echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgphobos.so.5.* | sed 's
%if %{build_m2}
for i in cor iso log min pim; do
rm -f libm2$i.so
- echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libm2$i.so.19.* | sed 's,^.*libm,libm,'`' )' > libm2$i.so
- echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libm2$i.so.19.* | sed 's,^.*libm,libm,'`' )' > 32/libm2$i.so
+ echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libm2$i.so.20.* | sed 's,^.*libm,libm,'`' )' > libm2$i.so
+ echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libm2$i.so.20.* | sed 's,^.*libm,libm,'`' )' > 32/libm2$i.so
rm -f 32/m2/m2$i/*.{a,la}
ln -sf ../../libm2$i.so 32/m2/m2$i/
ln -sf ../../libm2$i.a 32/m2/m2$i/
@@ -2191,7 +2214,7 @@ chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgphobos.so.5.*
%endif
%if %{build_m2}
for i in cor iso log min pim; do
- chmod 755 %{buildroot}%{_prefix}/%{_lib}/libm2$i.so.19.*
+ chmod 755 %{buildroot}%{_prefix}/%{_lib}/libm2$i.so.20.*
done
%endif
%if %{build_libitm}
@@ -2310,7 +2333,13 @@ rm -rf %{buildroot}%{_prefix}/lib64/go/%{gcc_major}/%{gcc_target_platform}
%endif
%endif
-rm -f %{buildroot}%{mandir}/man3/ffi*
+%if %{build_offload_nvptx}
+rm -f %{buildroot}%{_mandir}/man1/*-accel-*nvptx*
+%endif
+%if %{build_offload_amdgcn}
+rm -f %{buildroot}%{_mandir}/man1/*-accel-*amdgcn*
+%endif
+rm -f %{buildroot}%{_mandir}/man7/{gpl,gfdl,fsf-funding}.7*
# Help plugins find out nvra.
echo gcc-%{version}-%{release}.%{_arch} > $FULLPATH/rpmver
@@ -2436,6 +2465,8 @@ end
%ldconfig_scriptlets -n libgccjit
+%ldconfig_scriptlets -n libgdiagnostics
+
%ldconfig_scriptlets -n libquadmath
%ldconfig_scriptlets -n libitm
@@ -2548,9 +2579,7 @@ end
%{_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
@@ -2572,8 +2601,6 @@ end
%{_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
@@ -2624,6 +2651,24 @@ end
%{_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
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxavx512intrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxfp8intrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxmovrsintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxtf32intrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxtransposeintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx10_2-512bf16intrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx10_2-512convertintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx10_2-512mediaintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx10_2-512minmaxintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx10_2-512satcvtintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx10_2bf16intrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx10_2convertintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx10_2copyintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx10_2mediaintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx10_2minmaxintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx10_2roundingintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx10_2satcvtintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/movrsintrin.h
%endif
%ifarch ia64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ia64intrin.h
@@ -2668,6 +2713,10 @@ end
%{_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
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_private_fp8.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_private_neon_types.h
%endif
%ifarch sparc sparcv9 sparc64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/visintrin.h
@@ -2683,6 +2732,7 @@ end
%{_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
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/riscv_cmo.h
%endif
%if %{build_libasan}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sanitizer
@@ -2814,7 +2864,7 @@ end
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan_preinit.o
%endif
%{_prefix}/libexec/getconf/default
-%doc gcc/README* rpm.doc/changelogs/gcc/ChangeLog*
+%doc gcc/README* rpm.doc/changelogs/gcc/ChangeLog*
%{!?_licensedir:%global license %%doc}
%license gcc/COPYING* COPYING.RUNTIME
@@ -2899,6 +2949,7 @@ end
%ifnarch sparcv9 ppc %{multilib_64_archs}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.so
%endif
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.modules.json
%ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++fs.a
@@ -3110,6 +3161,7 @@ end
%files gm2
%{_prefix}/bin/gm2
%{_mandir}/man1/gm2.1*
+%{_infodir}/m2*
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
@@ -3139,7 +3191,7 @@ end
%doc rpm.doc/gm2/*
%files -n libgm2
-%{_prefix}/%{_lib}/libm2*.so.19*
+%{_prefix}/%{_lib}/libm2*.so.20*
%doc rpm.doc/libgm2/*
%files -n libgm2-static
@@ -3536,6 +3588,15 @@ end
%doc rpm.doc/libgccjit-devel/*
%doc gcc/jit/docs/examples
+%files -n libgdiagnostics
+%{_prefix}/bin/sarif-replay
+%{_prefix}/%{_lib}/libgdiagnostics.so.*
+
+%files -n libgdiagnostics-devel
+%{_prefix}/%{_lib}/libgdiagnostics.so
+%{_prefix}/include/libgdiagnostics*.h
+%doc rpm.doc/libgdiagnostics-devel/*
+
%files plugin-devel
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
@@ -3618,499 +3679,5 @@ end
%endif
%changelog
-- fix up -freport-bug default (#2330362)
-- revert -mearly-ldp-fusion and -mlate-ldp-fusion default to enabled on
- aarch64 to match upstream
-
-* Mon Nov 4 2024 Jakub Jelinek 14.2.1-6
-- update from releases/gcc-14 branch
- - PRs fortran/79685, jit/117275, libstdc++/117321, libstdc++/117406,
- middle-end/117354, rtl-optimization/116783, rtl-optimization/117327,
- target/116415, target/117296, target/117318, tree-optimization/107467,
- tree-optimization/117287
-
-* Fri Oct 25 2024 Jakub Jelinek 14.2.1-5
-- update from releases/gcc-14 branch
- - PRs ada/114593, ada/114636, ada/114640, ada/115535, ada/116190,
- ada/116430, ada/116551, c/116726, c/117230, c++/96097, c++/115361,
- c++/115987, c++/116369, c++/116418, c++/116424, c++/116476,
- c++/116492, c++/116534, c++/116676, c++/116678, c++/116929,
- c++/117054, c++/117107, c++/117259, c++/117274, fortran/84868,
- fortran/100273, ipa/109985, ipa/115815, libstdc++/37475,
- libstdc++/108619, libstdc++/116529, libstdc++/116754,
- libstdc++/116755, libstdc++/116777, libstdc++/116857,
- libstdc++/117085, libstdc++/117094, libstdc++/117135,
- middle-end/115110, middle-end/115426, middle-end/115641,
- middle-end/116258, middle-end/116259, middle-end/116454,
- middle-end/116891, middle-end/116898, middle-end/116899,
- middle-end/117086, middle-end/117249, sanitizer/117209, target/115860,
- target/116237, target/116627, target/116738, target/116839,
- target/116883, target/116921, target/116953, target/116962,
- target/117116, target/117159, target/117240, testsuite/116238,
- tree-optimization/116166, tree-optimization/116258,
- tree-optimization/116274, tree-optimization/116290,
- tree-optimization/116380, tree-optimization/116460,
- tree-optimization/116481, tree-optimization/116585,
- tree-optimization/116610, tree-optimization/116768,
- tree-optimization/116850, tree-optimization/116879,
- tree-optimization/116907, tree-optimization/116982,
- tree-optimization/116990, tree-optimization/117041,
- tree-optimization/117104
-
-* Wed Sep 25 2024 Siddhesh Poyarekar 14.2.1-4
-- default tuning to power 10 for RHEL10 and later
-
-* Thu Sep 12 2024 Jakub Jelinek 14.2.1-3
-- update from releases/gcc-14 branch
- - PRs c++/116276, c++/116320, c++/116449, c++/116567, c++/116606,
- c++/116636, ipa/116410, libstdc++/116159, libstdc++/116641,
- lto/116614, target/116617
-- backport x86_64 va_arg fix (PR target/116621)
-
-* Thu Sep 5 2024 Jakub Jelinek 14.2.1-2
-- update from releases/gcc-14 branch
- - PRs c++/88313, c++/112288, c++/115296, c++/115656, c++/116071, c++/116219,
- c++/116223, c++/116327, c++/116384, fortran/108889, fortran/116530,
- libstdc++/113663, libstdc++/116038, libstdc++/116381,
- libstdc++/116549, lto/116361, target/85624, target/112108,
- target/113384, target/115464, target/116007, target/116033,
- target/116043, target/116174, target/116189, target/116287,
- target/116295, target/116390, target/116407, target/116512,
- testsuite/70150, tree-optimization/113281, tree-optimization/116156,
- tree-optimization/116224, tree-optimization/116501
- - add hint #34 to aarch64 sanitizer asm stubs if -mbranch-protection=standard
- (#2306353)
-
-* Thu Aug 1 2024 Jakub Jelinek 14.2.1-1
-- update from releases/gcc-14 branch
- - GCC 14.2 release
- - PRs analyzer/114899, c++/99241, c++/99242, c++/104981, c++/106760,
- c++/111890, c++/115165, c++/115476, c++/115550, c++/115561,
- c++/115583, c++/115623, c++/115754, c++/115783, c++/115865,
- c++/115897, c++/115900, c++/115986, fortran/59104, fortran/84006,
- fortran/93635, fortran/98534, fortran/99798, fortran/100027,
- fortran/103115, fortran/103312, fortran/113363, fortran/115700,
- ipa/111613, ipa/113291, ipa/113787, ipa/114207, ipa/115033,
- ipa/115277, ipa/116055, libstdc++/113376, libstdc++/114387,
- libstdc++/115399, libstdc++/115482, libstdc++/115522,
- libstdc++/115585, libstdc++/115807, libstdc++/115854,
- libstdc++/116070, middle-end/115527, middle-end/115836,
- middle-end/115887, pch/115312, rtl-optimization/115049,
- rtl-optimization/115565, target/87376, target/88236, target/97367,
- target/98762, target/105090, target/113715, target/114759,
- target/114890, target/114936, target/114988, target/115068,
- target/115153, target/115188, target/115351, target/115389,
- target/115456, target/115457, target/115459, target/115475,
- target/115526, target/115554, target/115562, target/115591,
- target/115611, target/115691, target/115725, target/115726,
- target/115752, target/115763, target/115840, target/115872,
- target/115978, target/115981, target/115988, target/116035,
- testsuite/115826, testsuite/116061, tree-optimization/113673,
- tree-optimization/115382, tree-optimization/115646,
- tree-optimization/115669, tree-optimization/115694,
- tree-optimization/115701, tree-optimization/115723,
- tree-optimization/115841, tree-optimization/115843,
- tree-optimization/115867, tree-optimization/115868,
- tree-optimization/116034, tree-optimization/116057
-
-* Mon Jul 1 2024 Jakub Jelinek 14.1.1-7
-- update from releases/gcc-14 branch
- - PRs c/114930, c/115502, c/115587, c++/115198, c++/115358, c++/115504,
- c++/115624, fortran/114019, fortran/115390, libstdc++/115454,
- libstdc++/115575, libstdc++/115668, target/106069, target/114846,
- target/115342, target/115355, target/115608, tree-optimization/115278,
- tree-optimization/115508
-- revert the August 2016 workaround for python bytecode compilation (#2294381)
-
-* Thu Jun 20 2024 Jakub Jelinek 14.1.1-6
-- update from releases/gcc-14 branch
- - PRs ada/114398, ada/114708, c/115290, c++/99678, c++/115239, c++/115283,
- c++/115378, c++/115511, driver/115440, fortran/83865, jit/115442,
- libstdc++/114958, libstdc++/115247, libstdc++/115308,
- rtl-optimization/115281, target/109549, target/111343, target/115253,
- target/115353, target/115360, tree-optimization/115544
- - fix s390x ICEs with vector permutations from memory (#2293207, #2292501)
-
-* Fri Jun 7 2024 Jakub Jelinek 14.1.1-5
-- update from releases/gcc-14 branch
- - PRs ada/115270, c/114493, c++/105320, c++/114275, c++/114868, c++/114983,
- c++/115187, fortran/86100, fortran/115150, libstdc++/109849,
- libstdc++/111641, libstdc++/114940, libstdc++/115099,
- libstdc++/115269, libstdc++/115335, middle-end/108789,
- middle-end/115352, modula2/114886, rtl-optimization/114902,
- rtl-optimization/115038, rtl-optimization/115092, target/113719,
- target/115169, target/115297, target/115317, target/115324,
- tree-optimization/115149, tree-optimization/115192,
- tree-optimization/115197, tree-optimization/115232,
- tree-optimization/115307, tree-optimization/115337
-
-* Wed May 22 2024 Jakub Jelinek 14.1.1-4
-- update from releases/gcc-14 branch
- - PRs c++/114901, c++/114903, c++/114974, c++/114994, c++/115114,
- c++/115139, driver/114980, fortran/114827, fortran/114874,
- fortran/115039, libstdc++/107800, libstdc++/114866, libstdc++/114891,
- libstdc++/115015, libstdc++/115063, libstdc++/115119,
- middle-end/114931, sanitizer/115172, target/69374, target/112959,
- target/114968, target/114975, target/114981, target/115065,
- target/115069, tree-optimization/114998, tree-optimization/115143,
- tree-optimization/115152, tree-optimization/115154
-
-* Tue May 21 2024 Siddhesh Poyarekar 14.1.1-3
-- update new SPDX identifiers from all outstanding issues
-
-* Thu May 16 2024 Marek Polacek 14.1.1-2
-- fix a combinatorial explosion in combine (PR rtl-optimization/101523)
-
-* Wed May 8 2024 Jakub Jelinek 14.1.1-1
-- update from releases/gcc-14 branch
- - GCC 14.1.0 release
- - PRs analyzer/111475, c++/89224, c++/114856, c++/114889, c++/114935,
- ipa/92606, middle-end/114734, middle-end/114907, modula2/113768,
- modula2/114133, modula2/114929, rtl-optimization/114924,
- sanitizer/114956, tree-optimization/114876,
- tree-optimization/114921, tree-optimization/114965
-
-* Fri May 3 2024 Marek Polacek
-- enable hardening and configure with --enable-host-pie --enable-host-bind-now
- on RHEL
-- don't require rocm-runtime on RHEL
-
-* Tue Apr 30 2024 Jakub Jelinek 14.0.1-0.16
-- update from trunk and releases/gcc-14 branch
- - GCC 14.1.0-rc1
- - PRs c++/93595, c++/99426, c++/106820, c++/107457, c++/109966, c++/111284,
- c++/113141, c++/114078, c++/114393, c++/114426, c++/114600,
- c++/114634, c++/114691, c++/114706, c++/114709, c++/114784,
- c++/114795, c++/114888, c/92880, c/114780, d/111650, fortran/89462,
- fortran/93678, fortran/102597, fortran/103471, fortran/103496,
- fortran/113793, fortran/114739, fortran/114825, fortran/114959,
- gcov-profile/114715, gcov-profile/114720, libgcc/114689,
- libgcc/114755, libgcc/114762, libstdc++/93672, libstdc++/113386,
- libstdc++/114750, libstdc++/114770, libstdc++/114803,
- libstdc++/114863, lto/113208, lto/114574, middle-end/112938,
- middle-end/114753, modula2/112893, modula2/114745, modula2/114807,
- modula2/114811, modula2/114836, other/114738, preprocessor/114748,
- rtl-optimization/114768, sanitizer/114687, sanitizer/114743,
- target/110621, target/112431, target/112432, target/114416,
- target/114668, target/114676, target/114696, target/114714,
- target/114741, target/114752, target/114783, target/114794,
- target/114810, target/114837, target/114861, target/114885,
- testsuite/113706, testsuite/114744, testsuite/114768,
- tree-optimization/114403, tree-optimization/114666,
- tree-optimization/114733, tree-optimization/114736,
- tree-optimization/114749, tree-optimization/114769,
- tree-optimization/114787, tree-optimization/114792,
- tree-optimization/114799, tree-optimization/114832,
- tree-optimization/114883
-- switch to --with-arch_64=x86-64-v3 for latest RHEL
-- remove obsolete reason for not shipping *.gch* files
-
-* Thu Apr 11 2024 Jakub Jelinek 14.0.1-0.15
-- update from trunk
- - PRs analyzer/114472, c++/114303, c++/114409, debug/112878,
- fortran/106500, middle-end/110027, middle-end/114681, target/114639,
- tree-optimization/109596, tree-optimization/114672
- - fix symbol version of std::__basic_file::native_handle() const
- (PR libstdc++/114692)
- - emit -Whardened warning even for -fhardened -fcf-protection=none
- (#2273610, PR target/114606)
-
-* Wed Apr 10 2024 Jakub Jelinek 14.0.1-0.14
-- update from trunk
- - PRs analyzer/114588, bootstrap/106472, c++/91079, c++/99377, c++/100667,
- c++/103825, c++/104040, c++/111132, c++/114377, c++/114462,
- c++/114479, c++/114537, c++/114561, c++/114562, c++/114572,
- c++/114580, c/114361, debug/114608, fortran/36337, fortran/50410,
- fortran/106999, fortran/110987, fortran/112407, fortran/113885,
- fortran/113956, fortran/114474, fortran/114535, gcov-profile/113765,
- gcov-profile/114115, gcov-profile/114601, ipa/111571, ipa/113359,
- ipa/113907, ipa/113964, libquadmath/114533, libquadmath/114623,
- libstdc++/104606, libstdc++/114519, libstdc++/114633, lto/114655,
- middle-end/114552, middle-end/114599, middle-end/114604,
- middle-end/114627, middle-end/114628, modula2/114517,
- modula2/114520, modula2/114548, modula2/114565, modula2/114617,
- modula2/114648, rtl-optimization/112560, rtl-optimization/114415,
- target/88309, target/101865, target/112919, target/113233,
- target/113986, target/114577, target/114587, target/114590,
- target/114603, target/114607, testsuite/114034, testsuite/114036,
- testsuite/114307, testsuite/114614, testsuite/114642,
- testsuite/114662, tree-optimization/112303,
- tree-optimization/114115, tree-optimization/114480,
- tree-optimization/114485, tree-optimization/114551,
- tree-optimization/114555, tree-optimization/114557,
- tree-optimization/114566, tree-optimization/114624
- - don't emit VEX encoded AES-NI instructions when just -maes and not -mavx
- is enabled (#2272758, PR target/114576)
- - fix s390* peephole2 to check mode of constant pool entries and for
- 64-bit extraction from 128-bit constant pool entry extract the correct
- half of the value (#2273618, PR target/114605)
-
-* Thu Mar 28 2024 Jakub Jelinek 14.0.1-0.13
-- update from trunk
- - PRs analyzer/109251, analyzer/110902, analyzer/110928, analyzer/111305,
- analyzer/111441, analyzer/112974, analyzer/112975, analyzer/113505,
- analyzer/113619, analyzer/114286, analyzer/114408, analyzer/114473,
- bootstrap/114369, c++/59465, c++/100557, c++/110323, c++/111918,
- c++/112631, c++/112724, c++/114349, c++/114439, c/109619, c/114364,
- fortran/30802, fortran/55978, fortran/101135, fortran/103715,
- fortran/107426, fortran/111781, fortran/114475, ipa/108802,
- ipa/114254, libfortran/107031, libgcc/111731, libgcc/114397,
- libstdc++/101228, libstdc++/113841, libstdc++/114316,
- libstdc++/114359, libstdc++/114367, libstdc++/114394,
- libstdc++/114400, libstdc++/114401, middle-end/111151,
- middle-end/111632, middle-end/111683, middle-end/113396,
- middle-end/114347, middle-end/114348, middle-end/114480,
- modula2/113836, modula2/114296, modula2/114380, modula2/114418,
- modula2/114422, modula2/114443, modula2/114444, modula2/114478,
- rtl-optimization/101523, rtl-optimization/112415, sanitizer/111736,
- target/99829, target/111822, target/112651, target/114049,
- target/114150, target/114175, target/114194, target/114272,
- target/114323, target/114334, target/114352, target/114407,
- target/114431, testsuite/114320, testsuite/114486,
- tree-optimization/96147, tree-optimization/109925,
- tree-optimization/111736, tree-optimization/113727,
- tree-optimization/114057, tree-optimization/114151,
- tree-optimization/114322, tree-optimization/114329,
- tree-optimization/114365, tree-optimization/114375,
- tree-optimization/114396, tree-optimization/114405,
- tree-optimization/114425, tree-optimization/114433,
- tree-optimization/114464, tree-optimization/114469,
- tree-optimization/114471
-
-* Sat Mar 16 2024 Jakub Jelinek 14.0.1-0.12
-- update from trunk
- - PRs ada/113979, analyzer/114159, c++/92687, c++/98356, c++/98645,
- c++/98688, c++/98881, c++/103994, c++/104919, c++/105512,
- c++/106009, c++/110025, c++/110031, c++/110347, c++/110730,
- c++/111224, c++/111710, c++/113629, c++/113802, c++/113976,
- c++/113987, c++/114005, c++/114114, c++/114138, c++/114170,
- c++/114229, d/112285, d/112290, d/114171, debug/113519,
- debug/113777, debug/113918, debug/114015, debug/114186,
- driver/114314, fortran/82943, fortran/86148, fortran/86268,
- fortran/87477, fortran/89645, fortran/99065, fortran/103707,
- fortran/104819, fortran/106987, fortran/110826, fortran/114001,
- fortran/114141, fortran/114280, fortran/114283, ipa/113757,
- libbacktrace/114201, libcc1/113977, libfortran/105437,
- libfortran/114304, libgcc/114327, libgomp/114216, libstdc++/66146,
- libstdc++/113960, libstdc++/114103, libstdc++/114147,
- libstdc++/114152, libstdc++/114240, libstdc++/114244,
- libstdc++/114279, libstdc++/114325, middle-end/95351,
- middle-end/105533, middle-end/113907, middle-end/114108,
- middle-end/114136, middle-end/114156, middle-end/114157,
- middle-end/114196, middle-end/114209, middle-end/114299,
- middle-end/114313, middle-end/114319, middle-end/114332,
- modula2/102344, modula2/109969, modula2/114227, modula2/114294,
- modula2/114295, modula2/114333, preprocessor/80755,
- preprocessor/110558, rtl-optimization/110079,
- rtl-optimization/113010, rtl-optimization/114190,
- rtl-optimization/114211, sanitizer/97696, sanitizer/112709,
- target/92729, target/101737, target/102250, target/108174,
- target/111362, target/112337, target/112817, target/112871,
- target/113001, target/113453, target/113510, target/113542,
- target/113618, target/113720, target/113790, target/113915,
- target/113950, target/114100, target/114116, target/114130,
- target/114132, target/114184, target/114187, target/114200,
- target/114202, target/114232, target/114233, target/114264,
- target/114284, target/114288, target/114310, target/114339,
- testsuite/96109, testsuite/108355, testsuite/113418,
- testsuite/113428, tree-optimization/98238, tree-optimization/110199,
- tree-optimization/113466, tree-optimization/113557,
- tree-optimization/114009, tree-optimization/114071,
- tree-optimization/114121, tree-optimization/114164,
- tree-optimization/114192, tree-optimization/114197,
- tree-optimization/114203, tree-optimization/114231,
- tree-optimization/114239, tree-optimization/114246,
- tree-optimization/114249, tree-optimization/114269,
- tree-optimization/114278, tree-optimization/114293,
- tree-optimization/114297
-
-* Thu Mar 7 2024 Siddhesh Poyarekar
-- update License identifier in the spec file
-
-* Mon Mar 4 2024 Jakub Jelinek
-- add --without-clang-plugin --without-llvm-plugin to annobin configure
- options
-
-* Thu Feb 29 2024 David Abdurachmanov
-- enable support for riscv64
-
-* Wed Feb 28 2024 Jakub Jelinek 14.0.1-0.8
-- update from trunk
- - PRs ada/113893, analyzer/110483, analyzer/110520, analyzer/111289,
- analyzer/111802, analyzer/111881, analyzer/113983, analyzer/113998,
- analyzer/113999, c++/113083, c++/113966, c++/113970, c/114007,
- c/114042, fortran/105658, fortran/107071, fortran/114012,
- fortran/114024, ipa/61159, ipa/70582, ipa/111960, ipa/113476,
- libfortran/105456, libfortran/105473, middle-end/112344,
- middle-end/114070, middle-end/114073, middle-end/114084,
- modula2/113749, modula2/113889, modula2/114026, modula2/114055,
- other/109668, other/113957, rtl-optimization/54052,
- rtl-optimization/114044, rtl-optimization/114054, target/90785,
- target/108120, target/109987, target/112103, target/112375,
- target/112397, target/113220, target/113295, target/113613,
- target/113696, target/113805, target/113912, target/113971,
- target/113995, target/114017, target/114028, target/114094,
- target/114097, target/114098, testsuite/111462,
- tree-optimization/91567, tree-optimization/109804,
- tree-optimization/113205, tree-optimization/113967,
- tree-optimization/113988, tree-optimization/113993,
- tree-optimization/114027, tree-optimization/114038,
- tree-optimization/114040, tree-optimization/114041,
- tree-optimization/114048, tree-optimization/114068,
- tree-optimization/114074, tree-optimization/114081,
- tree-optimization/114090, tree-optimization/114099
- - fix up handling of C++ inline var specializations
- (#2264986, PR c++/114013)
- - punt on vectorization of +- with non-integral emulated vectors
- (#2265489, PR tree-optimization/114075)
- - fix up handling of references of comdat local symbols forced into
- memory (#2260416, PR rtl-optimization/113617)
-
-* Sat Feb 17 2024 Jakub Jelinek 14.0.1-0.7
-- update from trunk
- - PRs analyzer/111266, c++/97202, c++/97990, c++/98388, c++/99573,
- c++/107126, c++/111682, c++/112436, c++/112580, c++/113158,
- c++/113332, c++/113545, c++/113612, c++/113649, c++/113658,
- c++/113674, c++/113706, c++/113708, c++/113760, c++/113789,
- c++/113834, c++/113853, c++/113908, c++/113929, d/104739, d/113125,
- d/113667, d/113758, d/113772, fortran/99210, fortran/105847,
- fortran/113799, fortran/113866, fortran/113883, fortran/113911,
- ipa/98237, libfortran/107068, libgcc/113850, libgomp/113843,
- libstdc++/87744, libstdc++/99117, libstdc++/100147,
- libstdc++/113294, libstdc++/113806, libstdc++/113807,
- libstdc++/113811, libstdc++/113931, libstdc++/113961,
- middle-end/107385, middle-end/110754, middle-end/113415,
- middle-end/113508, middle-end/113576, middle-end/113904,
- middle-end/113921, modula2/113848, modula2/113888, other/113336,
- sanitizer/113785, target/106543, target/109349, target/113742,
- target/113780, target/113855, target/113871, target/113876,
- target/113909, target/113927, testsuite/113278, testsuite/113448,
- testsuite/113861, testsuite/113899, tree-optimization/108355,
- tree-optimization/111054, tree-optimization/111156,
- tree-optimization/113567, tree-optimization/113734,
- tree-optimization/113774, tree-optimization/113783,
- tree-optimization/113818, tree-optimization/113831,
- tree-optimization/113849, tree-optimization/113863,
- tree-optimization/113895, tree-optimization/113896,
- tree-optimization/113898, tree-optimization/113902,
- tree-optimization/113910
- - fix bugs in Fortran allocatable character component assignments
- (#2261826, PR fortran/113503)
-
-* Thu Feb 8 2024 Jakub Jelinek 14.0.1-0.6
-- update from trunk
- - PRs c++/113814, c/113776, target/113711, target/113733, target/113824,
- testsuite/113710, tree-optimization/113735, tree-optimization/113808
-
-* Wed Feb 7 2024 Jakub Jelinek 14.0.1-0.5
-- update from trunk
- - PRs analyzer/113253, analyzer/113509, analyzer/113654, c++/94231,
- c++/107291, c++/107594, c++/109359, c++/110006, c++/110084,
- c++/110358, c++/111286, c++/112437, c++/112439, c++/112737,
- c++/112769, c++/112846, c++/113451, c++/113531, c++/113544,
- c++/113638, c++/113640, c++/113644, c++/113788, c/111059, c/111911,
- c/112571, c/113438, c/113740, debug/103047, debug/113394,
- debug/113637, fortran/104908, libfortran/111022, libgcc/113337,
- libgcc/113402, libgcc/113403, libgcc/113604, libstdc++/109203,
- libstdc++/113309, libstdc++/113335, libstdc++/90276,
- middle-end/101195, middle-end/110176, middle-end/112917,
- middle-end/113100, middle-end/113607, middle-end/113622,
- middle-end/113699, middle-end/113705, middle-end/113722,
- modula2/111627, modula2/112506, modula2/113730,
- rtl-optimization/113656, sanitizer/110676, sanitizer/112644,
- target/38534, target/59778, target/103503, target/105576,
- target/108933, target/111677, target/112577, target/112861,
- target/112862, target/112863, target/112864, target/112950,
- target/113059, target/113249, target/113255, target/113312,
- target/113560, target/113615, target/113616, target/113623,
- target/113636, target/113655, target/113657, target/113689,
- target/113690, target/113697, target/113700, target/113701,
- target/113763, target/113766, testsuite/113502,
- tree-optimization/110603, tree-optimization/111268,
- tree-optimization/111444, tree-optimization/113467,
- tree-optimization/113568, tree-optimization/113588,
- tree-optimization/113603, tree-optimization/113614,
- tree-optimization/113630, tree-optimization/113639,
- tree-optimization/113659, tree-optimization/113670,
- tree-optimization/113691, tree-optimization/113692,
- tree-optimization/113693, tree-optimization/113707,
- tree-optimization/113731, tree-optimization/113736,
- tree-optimization/113737, tree-optimization/113750,
- tree-optimization/113753, tree-optimization/113756,
- tree-optimization/113759, tree-optimization/113796
- - fix PCH writing assertion (#2259912)
-
-* Sat Jan 27 2024 Jakub Jelinek 14.0.1-0.4
-- update from trunk
- - PRs analyzer/112969, c++/109227, c++/112899, c++/113580, c++/113598,
- c++/113599, middle-end/112971, other/113575, preprocessor/105608,
- target/100204, target/100212, target/112987, target/113469,
- target/113526, target/113538, target/113601, testsuite/113558,
- tree-optimization/113602
-- temporarily disable -mearly-ldp-fusion -mlate-ldp-fusion on aarch64 again
- (#2260449, #2260560, #2260562)
-- use gcc_major macro in the spec some more
-- require llvm >= 15 and lld >= 15 for the amdgcn offloading
- where they are used as assembler and linker
-
-* Thu Jan 25 2024 Jakub Jelinek 14.0.1-0.3
-- update from trunk
- - PRs analyzer/111361, analyzer/112705, analyzer/112811, analyzer/112927,
- analyzer/112977, bootstrap/113554, c++/67898, c++/90463, c++/90464,
- c++/100707, c++/102607, c++/104594, c++/109640, c++/109642,
- c++/111357, c++/111410, c++/111607, c++/112594, c++/112632,
- c++/112820, c++/113256, c++/113347, c++/113405, c++/113498,
- c++/113529, c/102998, c/107942, c/109708, c/110029, c/113492,
- c/113518, debug/107058, debug/112718, debug/113382, debug/113488,
- fortran/48776, fortran/111291, fortran/113377, fortran/113471,
- ipa/108007, ipa/108470, ipa/110705, ipa/112616, ipa/113490,
- libstdc++/113500, libstdc++/113512, middle-end/88345,
- middle-end/112684, middle-end/113574, modula2/113559, other/111966,
- rtl-optimization/111267, rtl-optimization/113255, target/82420,
- target/100942, target/108521, target/108640, target/109092,
- target/109636, target/110934, target/111279, target/112989,
- target/113030, target/113070, target/113089, target/113095,
- target/113114, target/113356, target/113420, target/113485,
- target/113486, target/113495, target/113550, target/113556,
- target/113572, testsuite/113437, testsuite/113548,
- tree-optimization/69807, tree-optimization/113364,
- tree-optimization/113373, tree-optimization/113459,
- tree-optimization/113462, tree-optimization/113463,
- tree-optimization/113464, tree-optimization/113491,
- tree-optimization/113494, tree-optimization/113552,
- tree-optimization/113576
-- add offloading support for AMD GCN ROCm capable devices
-
-* Thu Jan 18 2024 Jakub Jelinek 14.0.1-0.2
-- update from trunk
- - PRs ada/113397, analyzer/106229, analyzer/113150, analyzer/113333,
- bootstrap/113445, c++/99493, c++/104634, c++/109899, c++/110065,
- c++/112588, c++/113242, c++/113292, c++/113307, c++/113340,
- c++/113389, c/111693, fortran/67277, fortran/113305, libstdc++/108822,
- libstdc++/108827, libstdc++/109536, libstdc++/111327,
- libstdc++/113318, libstdc++/113450, middle-end/90348,
- middle-end/110115, middle-end/110847, middle-end/111422,
- middle-end/111659, middle-end/113354, middle-end/113406,
- middle-end/113409, middle-end/113410, modula2/111956, other/113399,
- rtl-optimization/96388, rtl-optimization/111554,
- rtl-optimization/113048, rust/108111, target/105522, target/107201,
- target/112573, target/112944, target/112973, target/113122,
- target/113156, target/113221, target/113247, target/113281,
- target/113393, target/113404, target/113429, testsuite/109705,
- testsuite/111850, testsuite/113366, testsuite/113369,
- testsuite/113446, testsuite/113452, translation/108890,
- tree-optimization/91624, tree-optimization/107823,
- tree-optimization/110251, tree-optimization/110422,
- tree-optimization/110450, tree-optimization/110768,
- tree-optimization/110794, tree-optimization/110841,
- tree-optimization/110852, tree-optimization/110941,
- tree-optimization/112774, tree-optimization/113091,
- tree-optimization/113287, tree-optimization/113361,
- tree-optimization/113370, tree-optimization/113371,
- tree-optimization/113372, tree-optimization/113374,
- tree-optimization/113385, tree-optimization/113408,
- tree-optimization/113421, tree-optimization/113431,
- tree-optimization/113475
-
-* Sat Jan 13 2024 Jakub Jelinek 14.0.1-0.1
+* Thu Jan 9 2025 Jakub Jelinek 15.0.0-0.3
- new package
diff --git a/gcc14-pr101523.patch b/gcc14-pr101523.patch
deleted file mode 100644
index 8f3b47b..0000000
--- a/gcc14-pr101523.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-Based on Richi's patch:
-
-~~
-The following avoids re-walking and re-combining the instructions
-between i2 and i3 when the pattern of i2 doesn't change.
-
-Bootstrap and regtest running ontop of a reversal of
-r14-9692-g839bc42772ba7a.
-
-It brings down memory use from 9GB to 400MB and compile-time from
-80s to 3.5s. r14-9692-g839bc42772ba7a does better in both metrics
-but has shown code generation regressions across architectures.
-
- PR rtl-optimization/101523
- * combine.cc (try_combine): When the pattern of i2 doesn't
- change do not re-start combining at i2 or an earlier insn which
- had links or notes added.
-~~
-But, since the patch affects code generation (for instance,
-libstdc++-v3/src/c++17/floating_from_chars.o), we limit the bailing out
-only when I2 hasn't been changed 1000x. I've measured how many times
-at most is I2 unchanged during a bootstrap + regtest.
-x86: 134
-aarch64: 736 (gimple-match-1.cc)
-s390x: 635 (gimple-match-*)
-ppc64le: 620 (gimple-match-*)
-while certain pathological testcases trigger it more than 10,000 times.
-With the limit in place this patch doesn't affect common code.
-
---- a/gcc/combine.cc
-+++ b/gcc/combine.cc
-@@ -92,6 +92,11 @@ along with GCC; see the file COPYING3. If not see
- #include "function-abi.h"
- #include "rtlanal.h"
-
-+/* Number of times I2 didn't change in try_combine. Used to prevent a
-+ combinatorial explosion. */
-+
-+static int combine_i2_unchanged;
-+
- /* Number of attempts to combine instructions in this function. */
-
- static int combine_attempts;
-@@ -1127,6 +1132,7 @@ combine_instructions (rtx_insn *f, unsigned int nregs)
- return false;
-
- combine_attempts = 0;
-+ combine_i2_unchanged = 0;
- combine_merges = 0;
- combine_extras = 0;
- combine_successes = 0;
-@@ -4196,6 +4201,10 @@ try_combine (rtx_insn *i3, rtx_insn *i2, rtx_insn *i1, rtx_insn *i0,
- adjust_for_new_dest (i3);
- }
-
-+ bool i2_i2_unchanged = false;
-+ if (rtx_equal_p (newi2pat, PATTERN (i2)))
-+ i2_i2_unchanged = true;
-+
- /* We now know that we can do this combination. Merge the insns and
- update the status of registers and LOG_LINKS. */
-
-@@ -4762,6 +4771,13 @@ try_combine (rtx_insn *i3, rtx_insn *i2, rtx_insn *i1, rtx_insn *i0,
- combine_successes++;
- undo_commit ();
-
-+ if (i2_i2_unchanged)
-+ {
-+ if (combine_i2_unchanged == 1000)
-+ return i3;
-+ ++combine_i2_unchanged;
-+ }
-+
- rtx_insn *ret = newi2pat ? i2 : i3;
- if (added_links_insn && DF_INSN_LUID (added_links_insn) < DF_INSN_LUID (ret))
- ret = added_links_insn;
diff --git a/gcc14-Wno-format-security.patch b/gcc15-Wno-format-security.patch
similarity index 80%
rename from gcc14-Wno-format-security.patch
rename to gcc15-Wno-format-security.patch
index e317c15..66f62b8 100644
--- a/gcc14-Wno-format-security.patch
+++ b/gcc15-Wno-format-security.patch
@@ -9,15 +9,15 @@
* configure: Regenerated.
--- gcc/configure.ac.jj 2017-02-13 12:20:53.000000000 +0100
-+++ gcc/configure.ac 2017-02-25 12:42:32.859175403 +0100
-@@ -570,7 +570,7 @@ AC_ARG_ENABLE(build-format-warnings,
++++ gcc/configure.ac 2024-11-30 13:34:11.100296256 +0100
+@@ -592,7 +592,7 @@ AC_ARG_ENABLE(build-format-warnings,
AS_HELP_STRING([--disable-build-format-warnings],[don't use -Wformat while building GCC]),
[],[enable_build_format_warnings=yes])
AS_IF([test $enable_build_format_warnings = no],
- [wf_opt=-Wno-format],[wf_opt=])
+ [wf_opt="-Wno-format -Wno-format-security"],[wf_opt=])
ACX_PROG_CXX_WARNING_OPTS(
- m4_quote(m4_do([-W -Wall -Wno-narrowing -Wwrite-strings ],
+ m4_quote(m4_do([-W -Wall -Wno-error=narrowing -Wwrite-strings ],
[-Wcast-qual $wf_opt])),
--- gcc/configure.jj 2017-02-13 12:20:52.000000000 +0100
+++ gcc/configure 2017-02-25 12:42:50.041946391 +0100
@@ -31,8 +31,8 @@
wf_opt=
fi
--- Makefile.tpl.jj 2023-11-29 13:21:41.680292662 +0100
-+++ Makefile.tpl 2023-11-29 13:23:24.677839321 +0100
-@@ -448,9 +448,9 @@ LDFLAGS = @LDFLAGS@
++++ Makefile.tpl 2024-11-30 13:35:29.303196246 +0100
+@@ -450,9 +450,9 @@ LDFLAGS = @LDFLAGS@
LIBCFLAGS = $(CFLAGS)
CXXFLAGS = @CXXFLAGS@
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
@@ -43,11 +43,11 @@
+GDCFLAGS = $(filter-out -Wformat-security,@GDCFLAGS@)
+GM2FLAGS = $(filter-out -Wformat-security,$(CFLAGS))
- PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+ CRAB1_LIBS = @CRAB1_LIBS@
--- Makefile.in.jj 2023-11-29 13:21:41.691292507 +0100
-+++ Makefile.in 2023-11-29 13:24:01.254323180 +0100
-@@ -445,9 +445,9 @@ LDFLAGS = @LDFLAGS@
++++ Makefile.in 2024-11-30 13:36:12.113594079 +0100
+@@ -447,9 +447,9 @@ LDFLAGS = @LDFLAGS@
LIBCFLAGS = $(CFLAGS)
CXXFLAGS = @CXXFLAGS@
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
@@ -58,5 +58,5 @@
+GDCFLAGS = $(filter-out -Wformat-security,@GDCFLAGS@)
+GM2FLAGS = $(filter-out -Wformat-security,$(CFLAGS))
- PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+ CRAB1_LIBS = @CRAB1_LIBS@
diff --git a/gcc14-d-shared-libphobos.patch b/gcc15-d-shared-libphobos.patch
similarity index 100%
rename from gcc14-d-shared-libphobos.patch
rename to gcc15-d-shared-libphobos.patch
diff --git a/gcc14-fortran-fdec-duplicates.patch b/gcc15-fortran-fdec-duplicates.patch
similarity index 100%
rename from gcc14-fortran-fdec-duplicates.patch
rename to gcc15-fortran-fdec-duplicates.patch
diff --git a/gcc14-hack.patch b/gcc15-hack.patch
similarity index 57%
rename from gcc14-hack.patch
rename to gcc15-hack.patch
index e98649e..9c5d57b 100644
--- a/gcc14-hack.patch
+++ b/gcc15-hack.patch
@@ -66,61 +66,117 @@
GDCFLAGS="$(GDCFLAGS) $${flags}" \
CXXFLAGS="$(CXXFLAGS) $${flags}" \
--- libcpp/macro.cc.jj 2019-01-09 13:01:21.420552123 +0100
-+++ libcpp/macro.cc 2019-01-11 18:18:17.736876285 +0100
-@@ -3256,8 +3256,6 @@ static cpp_macro *
++++ libcpp/macro.cc 2024-11-30 13:16:41.163056391 +0100
+@@ -3680,8 +3680,6 @@ static cpp_macro *
create_iso_definition (cpp_reader *pfile)
{
bool following_paste_op = false;
- const char *paste_op_error_msg =
-- N_("'##' cannot appear at either end of a macro expansion");
+- N_("%<##%> cannot appear at either end of a macro expansion");
unsigned int num_extra_tokens = 0;
unsigned nparms = 0;
cpp_hashnode **params = NULL;
-@@ -3382,7 +3380,9 @@ create_iso_definition (cpp_reader *pfile
+@@ -3809,7 +3807,9 @@ create_iso_definition (cpp_reader *pfile
function-like macros, but not at the end. */
if (following_paste_op)
{
- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
+ cpp_error (pfile, CPP_DL_ERROR,
-+ "'##' cannot appear at either end of a macro "
++ "%<##%> cannot appear at either end of a macro "
+ "expansion");
goto out;
}
if (!vaopt_tracker.completed ())
-@@ -3397,7 +3397,9 @@ create_iso_definition (cpp_reader *pfile
+@@ -3824,7 +3824,9 @@ create_iso_definition (cpp_reader *pfile
function-like macros, but not at the beginning. */
if (macro->count == 1)
{
- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
+ cpp_error (pfile, CPP_DL_ERROR,
-+ "'##' cannot appear at either end of a macro "
++ "%<##%> cannot appear at either end of a macro "
+ "expansion");
goto out;
}
--- libcpp/expr.cc.jj 2019-01-09 13:01:22.415535734 +0100
-+++ libcpp/expr.cc 2019-01-11 18:16:23.444726882 +0100
-@@ -803,16 +803,17 @@ cpp_classify_number (cpp_reader *pfile,
++++ libcpp/expr.cc 2024-11-30 13:14:52.468583689 +0100
+@@ -874,50 +874,54 @@ cpp_classify_number (cpp_reader *pfile,
if ((result & CPP_N_WIDTH) == CPP_N_LARGE
&& CPP_OPTION (pfile, cpp_warn_long_long))
{
-- const char *message = CPP_OPTION (pfile, cplusplus)
+- const char *message = CPP_OPTION (pfile, cplusplus)
- ? N_("use of C++11 long long integer constant")
- : N_("use of C99 long long integer constant");
-
if (CPP_OPTION (pfile, c99))
- cpp_warning_with_line (pfile, CPP_W_LONG_LONG, virtual_location,
+- cpp_warning_with_line (pfile, CPP_W_LONG_LONG, virtual_location,
- 0, message);
-+ 0, CPP_OPTION (pfile, cplusplus)
-+ ? N_("use of C++11 long long integer constant")
-+ : N_("use of C99 long long integer constant"));
++ cpp_warning_with_line (pfile, CPP_W_LONG_LONG, virtual_location, 0,
++ CPP_OPTION (pfile, cplusplus)
++ ? N_("use of C++11 long long integer "
++ "constant")
++ : N_("use of C99 long long integer "
++ "constant"));
else
cpp_pedwarning_with_line (pfile, CPP_W_LONG_LONG,
- virtual_location, 0, message);
+ virtual_location, 0,
+ CPP_OPTION (pfile, cplusplus)
-+ ? N_("use of C++11 long long integer constant")
-+ : N_("use of C99 long long integer constant"));
++ ? N_("use of C++11 long long integer "
++ "constant")
++ : N_("use of C99 long long integer "
++ "constant"));
}
if ((result & CPP_N_SIZE_T) == CPP_N_SIZE_T
+ && !CPP_OPTION (pfile, size_t_literals))
+- {
+- const char *message
+- = (result & CPP_N_UNSIGNED) == CPP_N_UNSIGNED
+- ? N_("use of C++23 % integer constant")
+- : N_("use of C++23 %%> integer constant");
+- cpp_warning_with_line (pfile, CPP_W_SIZE_T_LITERALS,
+- virtual_location, 0, message);
+- }
++ cpp_warning_with_line (pfile, CPP_W_SIZE_T_LITERALS,
++ virtual_location, 0,
++ (result & CPP_N_UNSIGNED) == CPP_N_UNSIGNED
++ ? N_("use of C++23 % integer "
++ "constant")
++ : N_("use of C++23 %%> "
++ "integer constant"));
+
+ if ((result & CPP_N_BITINT) != 0
+ && CPP_OPTION (pfile, cpp_warn_c11_c23_compat) != 0)
+ {
+ if (CPP_OPTION (pfile, cpp_warn_c11_c23_compat) > 0)
+ {
+- const char *message = N_("ISO C does not support literal "
+- "% suffixes before C23");
+ if (CPP_PEDANTIC (pfile) && !CPP_OPTION (pfile, true_false))
+ cpp_pedwarning_with_line (pfile, CPP_W_C11_C23_COMPAT,
+- virtual_location, 0, message);
++ virtual_location, 0,
++ "ISO C does not support literal "
++ "% suffixes before C23");
+ else
+ cpp_warning_with_line (pfile, CPP_W_C11_C23_COMPAT,
+- virtual_location, 0, message);
+- }
+- else if (!CPP_OPTION (pfile, true_false))
+- {
+- const char *message = N_("ISO C does not support literal "
++ virtual_location, 0,
++ "ISO C does not support literal "
+ "% suffixes before C23");
+- cpp_pedwarning_with_line (pfile, CPP_W_PEDANTIC,
+- virtual_location, 0, message);
+ }
++ else if (!CPP_OPTION (pfile, true_false))
++ cpp_pedwarning_with_line (pfile, CPP_W_PEDANTIC,
++ virtual_location, 0,
++ "ISO C does not support literal "
++ "% suffixes before C23");
+ }
+
+ result |= CPP_N_INTEGER;
diff --git a/gcc14-isl-dl.patch b/gcc15-isl-dl.patch
similarity index 99%
rename from gcc14-isl-dl.patch
rename to gcc15-isl-dl.patch
index 20dd8bf..dc0c49b 100644
--- a/gcc14-isl-dl.patch
+++ b/gcc15-isl-dl.patch
@@ -696,16 +696,16 @@
static void
--- gcc/toplev.cc.jj 2017-02-19 13:02:31.000000000 +0100
-+++ gcc/toplev.cc 2017-02-19 16:50:25.536301350 +0100
-@@ -94,6 +94,7 @@ along with GCC; see the file COPYING3.
++++ gcc/toplev.cc 2024-11-30 13:22:34.175096117 +0100
+@@ -100,6 +100,7 @@ along with GCC; see the file COPYING3.
#ifdef HAVE_isl
#include
+extern const char *get_isl_version (bool);
#endif
- static void general_init (const char *, bool);
-@@ -683,7 +684,7 @@ print_version (FILE *file, const char *i
+ static void general_init (const char *, bool, unique_argv original_argv);
+@@ -652,7 +653,7 @@ print_version (FILE *file, const char *i
#ifndef HAVE_isl
"none"
#else
diff --git a/gcc14-isl-dl2.patch b/gcc15-isl-dl2.patch
similarity index 89%
rename from gcc14-isl-dl2.patch
rename to gcc15-isl-dl2.patch
index 2e12499..8d2c4d9 100644
--- a/gcc14-isl-dl2.patch
+++ b/gcc15-isl-dl2.patch
@@ -6,8 +6,8 @@
directory.
--- gcc/toplev.cc.jj 2008-12-09 23:59:10.000000000 +0100
-+++ gcc/toplev.cc 2009-01-27 14:33:52.000000000 +0100
-@@ -113,6 +113,8 @@ static void finalize (bool);
++++ gcc/toplev.cc 2024-11-30 13:26:05.085132543 +0100
+@@ -112,6 +112,8 @@ static void finalize ();
static void crash_signal (int) ATTRIBUTE_NORETURN;
static void compile_file (void);
@@ -16,14 +16,14 @@
/* Decoded options, and number of such options. */
struct cl_decoded_option *save_decoded_options;
unsigned int save_decoded_options_count;
-@@ -2239,6 +2241,8 @@ toplev::main (int argc, char **argv)
+@@ -2296,6 +2298,8 @@ toplev::main (int argc, char **argv)
expandargv (&argc, &argv);
+ toplev_main_argv = CONST_CAST2 (const char **, char **, argv);
+
/* Initialization of GCC's environment, and diagnostics. */
- general_init (argv[0], m_init_signals);
+ general_init (argv[0], m_init_signals, std::move (original_argv));
--- gcc/graphite.cc.jj 2010-12-01 10:24:32.000000000 -0500
+++ gcc/graphite.cc 2010-12-01 11:46:07.832118193 -0500
diff --git a/gcc14-libgomp-omp_h-multilib.patch b/gcc15-libgomp-omp_h-multilib.patch
similarity index 100%
rename from gcc14-libgomp-omp_h-multilib.patch
rename to gcc15-libgomp-omp_h-multilib.patch
diff --git a/gcc14-libstdc++-docs.patch b/gcc15-libstdc++-docs.patch
similarity index 74%
rename from gcc14-libstdc++-docs.patch
rename to gcc15-libstdc++-docs.patch
index 0e0e0f9..fc94419 100644
--- a/gcc14-libstdc++-docs.patch
+++ b/gcc15-libstdc++-docs.patch
@@ -4,21 +4,21 @@
FSF
-+ Release 14.2.1
++ Release 15.0.0
+
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation
License, Version 1.2 or any later version published by the
--- libstdc++-v3/doc/html/api.html.jj 2011-01-03 12:53:21.000000000 +0100
-+++ libstdc++-v3/doc/html/api.html 2011-01-04 18:12:01.672757784 +0100
++++ libstdc++-v3/doc/html/api.html 2024-11-30 13:30:16.607594623 +0100
@@ -20,7 +20,9 @@
member functions for the library classes, finding out what is in a
particular include file, looking at inheritance diagrams, etc.
- The API documentation, rendered into HTML, can be viewed online
+ The API documentation, rendered into HTML, can be viewed locally
-+ for the 14.2.1 release,
++ for the 15.0.0 release,
+ online
- for each GCC release
+ for each GCC release
and
-
+
diff --git a/gcc14-libtool-no-rpath.patch b/gcc15-libtool-no-rpath.patch
similarity index 100%
rename from gcc14-libtool-no-rpath.patch
rename to gcc15-libtool-no-rpath.patch
diff --git a/gcc14-no-add-needed.patch b/gcc15-no-add-needed.patch
similarity index 100%
rename from gcc14-no-add-needed.patch
rename to gcc15-no-add-needed.patch
diff --git a/gcc15-pr118206.patch b/gcc15-pr118206.patch
new file mode 100644
index 0000000..a72ae36
--- /dev/null
+++ b/gcc15-pr118206.patch
@@ -0,0 +1,581 @@
+2025-01-09 Jakub Jelinek
+
+ PR tree-optimization/118206
+ * gimple-fold.cc (fold_truth_andor_for_ifcombine): Temporarily disable.
+ * fold-const.cc (decode_field_reference, all_ones_mask_p, unextend,
+ fold_truth_andor_1): Temporarily revert 2024-12-12 changes.
+
+--- gcc/gimple-fold.cc.jj 2025-01-02 11:23:09.379616499 +0100
++++ gcc/gimple-fold.cc 2025-01-09 09:08:53.789628193 +0100
+@@ -8037,7 +8037,8 @@ fold_truth_andor_for_ifcombine (enum tre
+ it were surrounded with a NE_EXPR. */
+
+ if (TREE_CODE_CLASS (lcode) != tcc_comparison
+- || TREE_CODE_CLASS (rcode) != tcc_comparison)
++ || TREE_CODE_CLASS (rcode) != tcc_comparison
++ || 1)
+ return 0;
+
+ /* We don't normally find TRUTH_*IF_EXPR in gimple, but these codes may be
+--- gcc/fold-const.cc.jj
++++ gcc/fold-const.cc
+@@ -137,6 +137,7 @@ static tree range_successor (tree);
+ static tree fold_range_test (location_t, enum tree_code, tree, tree, tree);
+ static tree fold_cond_expr_with_comparison (location_t, tree, enum tree_code,
+ tree, tree, tree, tree);
++static tree unextend (tree, int, int, tree);
+ static tree extract_muldiv (tree, tree, enum tree_code, tree, bool *);
+ static tree extract_muldiv_1 (tree, tree, enum tree_code, tree, bool *);
+ static tree fold_binary_op_with_conditional_arg (location_t,
+@@ -5021,6 +5022,136 @@ optimize_bit_field_compare (location_t loc, enum tree_code code,
+ return lhs;
+ }
+
++/* Subroutine for fold_truth_andor_1: decode a field reference.
++
++ If EXP is a comparison reference, we return the innermost reference.
++
++ *PBITSIZE is set to the number of bits in the reference, *PBITPOS is
++ set to the starting bit number.
++
++ If the innermost field can be completely contained in a mode-sized
++ unit, *PMODE is set to that mode. Otherwise, it is set to VOIDmode.
++
++ *PVOLATILEP is set to 1 if the any expression encountered is volatile;
++ otherwise it is not changed.
++
++ *PUNSIGNEDP is set to the signedness of the field.
++
++ *PREVERSEP is set to the storage order of the field.
++
++ *PMASK is set to the mask used. This is either contained in a
++ BIT_AND_EXPR or derived from the width of the field.
++
++ *PAND_MASK is set to the mask found in a BIT_AND_EXPR, if any.
++
++ Return 0 if this is not a component reference or is one that we can't
++ do anything with. */
++
++static tree
++decode_field_reference (location_t loc, tree *exp_, HOST_WIDE_INT *pbitsize,
++ HOST_WIDE_INT *pbitpos, machine_mode *pmode,
++ int *punsignedp, int *preversep, int *pvolatilep,
++ tree *pmask, tree *pand_mask)
++{
++ tree exp = *exp_;
++ tree outer_type = 0;
++ tree and_mask = 0;
++ tree mask, inner, offset;
++ tree unsigned_type;
++ unsigned int precision;
++
++ /* All the optimizations using this function assume integer fields.
++ There are problems with FP fields since the type_for_size call
++ below can fail for, e.g., XFmode. */
++ if (! INTEGRAL_TYPE_P (TREE_TYPE (exp)))
++ return NULL_TREE;
++
++ /* We are interested in the bare arrangement of bits, so strip everything
++ that doesn't affect the machine mode. However, record the type of the
++ outermost expression if it may matter below. */
++ if (CONVERT_EXPR_P (exp)
++ || TREE_CODE (exp) == NON_LVALUE_EXPR)
++ outer_type = TREE_TYPE (exp);
++ STRIP_NOPS (exp);
++
++ if (TREE_CODE (exp) == BIT_AND_EXPR)
++ {
++ and_mask = TREE_OPERAND (exp, 1);
++ exp = TREE_OPERAND (exp, 0);
++ STRIP_NOPS (exp); STRIP_NOPS (and_mask);
++ if (TREE_CODE (and_mask) != INTEGER_CST)
++ return NULL_TREE;
++ }
++
++ poly_int64 poly_bitsize, poly_bitpos;
++ inner = get_inner_reference (exp, &poly_bitsize, &poly_bitpos, &offset,
++ pmode, punsignedp, preversep, pvolatilep);
++ if ((inner == exp && and_mask == 0)
++ || !poly_bitsize.is_constant (pbitsize)
++ || !poly_bitpos.is_constant (pbitpos)
++ || *pbitsize < 0
++ || offset != 0
++ || TREE_CODE (inner) == PLACEHOLDER_EXPR
++ /* We eventually want to build a larger reference and need to take
++ the address of this. */
++ || (!REFERENCE_CLASS_P (inner) && !DECL_P (inner))
++ /* Reject out-of-bound accesses (PR79731). */
++ || (! AGGREGATE_TYPE_P (TREE_TYPE (inner))
++ && compare_tree_int (TYPE_SIZE (TREE_TYPE (inner)),
++ *pbitpos + *pbitsize) < 0))
++ return NULL_TREE;
++
++ unsigned_type = lang_hooks.types.type_for_size (*pbitsize, 1);
++ if (unsigned_type == NULL_TREE)
++ return NULL_TREE;
++
++ *exp_ = exp;
++
++ /* If the number of bits in the reference is the same as the bitsize of
++ the outer type, then the outer type gives the signedness. Otherwise
++ (in case of a small bitfield) the signedness is unchanged. */
++ if (outer_type && *pbitsize == TYPE_PRECISION (outer_type))
++ *punsignedp = TYPE_UNSIGNED (outer_type);
++
++ /* Compute the mask to access the bitfield. */
++ precision = TYPE_PRECISION (unsigned_type);
++
++ mask = build_int_cst_type (unsigned_type, -1);
++
++ mask = const_binop (LSHIFT_EXPR, mask, size_int (precision - *pbitsize));
++ mask = const_binop (RSHIFT_EXPR, mask, size_int (precision - *pbitsize));
++
++ /* Merge it with the mask we found in the BIT_AND_EXPR, if any. */
++ if (and_mask != 0)
++ mask = fold_build2_loc (loc, BIT_AND_EXPR, unsigned_type,
++ fold_convert_loc (loc, unsigned_type, and_mask), mask);
++
++ *pmask = mask;
++ *pand_mask = and_mask;
++ return inner;
++}
++
++/* Return nonzero if MASK represents a mask of SIZE ones in the low-order
++ bit positions and MASK is SIGNED. */
++
++static bool
++all_ones_mask_p (const_tree mask, unsigned int size)
++{
++ tree type = TREE_TYPE (mask);
++ unsigned int precision = TYPE_PRECISION (type);
++
++ /* If this function returns true when the type of the mask is
++ UNSIGNED, then there will be errors. In particular see
++ gcc.c-torture/execute/990326-1.c. There does not appear to be
++ any documentation paper trail as to why this is so. But the pre
++ wide-int worked with that restriction and it has been preserved
++ here. */
++ if (size > precision || TYPE_SIGN (type) == UNSIGNED)
++ return false;
++
++ return wi::mask (size, false, precision) == wi::to_wide (mask);
++}
++
+ /* Subroutine for fold: determine if VAL is the INTEGER_CONST that
+ represents the sign bit of EXP's type. If EXP represents a sign
+ or zero extension, also test VAL against the unextended type.
+@@ -6330,6 +6461,48 @@ fold_range_test (location_t loc, enum tree_code code, tree type,
+ return 0;
+ }
+
++/* Subroutine for fold_truth_andor_1: C is an INTEGER_CST interpreted as a P
++ bit value. Arrange things so the extra bits will be set to zero if and
++ only if C is signed-extended to its full width. If MASK is nonzero,
++ it is an INTEGER_CST that should be AND'ed with the extra bits. */
++
++static tree
++unextend (tree c, int p, int unsignedp, tree mask)
++{
++ tree type = TREE_TYPE (c);
++ int modesize = GET_MODE_BITSIZE (SCALAR_INT_TYPE_MODE (type));
++ tree temp;
++
++ if (p == modesize || unsignedp)
++ return c;
++
++ /* We work by getting just the sign bit into the low-order bit, then
++ into the high-order bit, then sign-extend. We then XOR that value
++ with C. */
++ temp = build_int_cst (TREE_TYPE (c),
++ wi::extract_uhwi (wi::to_wide (c), p - 1, 1));
++
++ /* We must use a signed type in order to get an arithmetic right shift.
++ However, we must also avoid introducing accidental overflows, so that
++ a subsequent call to integer_zerop will work. Hence we must
++ do the type conversion here. At this point, the constant is either
++ zero or one, and the conversion to a signed type can never overflow.
++ We could get an overflow if this conversion is done anywhere else. */
++ if (TYPE_UNSIGNED (type))
++ temp = fold_convert (signed_type_for (type), temp);
++
++ temp = const_binop (LSHIFT_EXPR, temp, size_int (modesize - 1));
++ temp = const_binop (RSHIFT_EXPR, temp, size_int (modesize - p - 1));
++ if (mask != 0)
++ temp = const_binop (BIT_AND_EXPR, temp,
++ fold_convert (TREE_TYPE (c), mask));
++ /* If necessary, convert the type back to match the type of C. */
++ if (TYPE_UNSIGNED (type))
++ temp = fold_convert (type, temp);
++
++ return fold_convert (type, const_binop (BIT_XOR_EXPR, c, temp));
++}
++
+ /* For an expression that has the form
+ (A && B) || ~B
+ or
+@@ -6400,13 +6573,20 @@ merge_truthop_with_opposite_arm (location_t loc, tree op, tree cmpop,
+ lhs, rhs);
+ return NULL_TREE;
+ }
+-
++
+ /* Find ways of folding logical expressions of LHS and RHS:
+ Try to merge two comparisons to the same innermost item.
+ Look for range tests like "ch >= '0' && ch <= '9'".
+ Look for combinations of simple terms on machines with expensive branches
+ and evaluate the RHS unconditionally.
+
++ For example, if we have p->a == 2 && p->b == 4 and we can make an
++ object large enough to span both A and B, we can do this with a comparison
++ against the object ANDed with the a mask.
++
++ If we have p->a == q->a && p->b == q->b, we may be able to use bit masking
++ operations to do this with one comparison.
++
+ We check for both normal comparisons and the BIT_AND_EXPRs made this by
+ function and the one above.
+
+@@ -6431,9 +6611,24 @@ fold_truth_andor_1 (location_t loc, enum tree_code code, tree truth_type,
+ convert EQ_EXPR to NE_EXPR so we need not reject the "wrong"
+ comparison for one-bit fields. */
+
++ enum tree_code wanted_code;
+ enum tree_code lcode, rcode;
+ tree ll_arg, lr_arg, rl_arg, rr_arg;
+- tree result;
++ tree ll_inner, lr_inner, rl_inner, rr_inner;
++ HOST_WIDE_INT ll_bitsize, ll_bitpos, lr_bitsize, lr_bitpos;
++ HOST_WIDE_INT rl_bitsize, rl_bitpos, rr_bitsize, rr_bitpos;
++ HOST_WIDE_INT xll_bitpos, xlr_bitpos, xrl_bitpos, xrr_bitpos;
++ HOST_WIDE_INT lnbitsize, lnbitpos, rnbitsize, rnbitpos;
++ int ll_unsignedp, lr_unsignedp, rl_unsignedp, rr_unsignedp;
++ int ll_reversep, lr_reversep, rl_reversep, rr_reversep;
++ machine_mode ll_mode, lr_mode, rl_mode, rr_mode;
++ scalar_int_mode lnmode, rnmode;
++ tree ll_mask, lr_mask, rl_mask, rr_mask;
++ tree ll_and_mask, lr_and_mask, rl_and_mask, rr_and_mask;
++ tree l_const, r_const;
++ tree lntype, rntype, result;
++ HOST_WIDE_INT first_bit, end_bit;
++ int volatilep;
+
+ /* Start by getting the comparison codes. Fail if anything is volatile.
+ If one operand is a BIT_AND_EXPR with the constant one, treat it as if
+@@ -6528,7 +6723,316 @@ fold_truth_andor_1 (location_t loc, enum tree_code code, tree truth_type,
+ build_int_cst (TREE_TYPE (ll_arg), 0));
+ }
+
+- return 0;
++ /* See if the comparisons can be merged. Then get all the parameters for
++ each side. */
++
++ if ((lcode != EQ_EXPR && lcode != NE_EXPR)
++ || (rcode != EQ_EXPR && rcode != NE_EXPR))
++ return 0;
++
++ ll_reversep = lr_reversep = rl_reversep = rr_reversep = 0;
++ volatilep = 0;
++ ll_inner = decode_field_reference (loc, &ll_arg,
++ &ll_bitsize, &ll_bitpos, &ll_mode,
++ &ll_unsignedp, &ll_reversep, &volatilep,
++ &ll_mask, &ll_and_mask);
++ lr_inner = decode_field_reference (loc, &lr_arg,
++ &lr_bitsize, &lr_bitpos, &lr_mode,
++ &lr_unsignedp, &lr_reversep, &volatilep,
++ &lr_mask, &lr_and_mask);
++ rl_inner = decode_field_reference (loc, &rl_arg,
++ &rl_bitsize, &rl_bitpos, &rl_mode,
++ &rl_unsignedp, &rl_reversep, &volatilep,
++ &rl_mask, &rl_and_mask);
++ rr_inner = decode_field_reference (loc, &rr_arg,
++ &rr_bitsize, &rr_bitpos, &rr_mode,
++ &rr_unsignedp, &rr_reversep, &volatilep,
++ &rr_mask, &rr_and_mask);
++
++ /* It must be true that the inner operation on the lhs of each
++ comparison must be the same if we are to be able to do anything.
++ Then see if we have constants. If not, the same must be true for
++ the rhs's. */
++ if (volatilep
++ || ll_reversep != rl_reversep
++ || ll_inner == 0 || rl_inner == 0
++ || ! operand_equal_p (ll_inner, rl_inner, 0))
++ return 0;
++
++ if (TREE_CODE (lr_arg) == INTEGER_CST
++ && TREE_CODE (rr_arg) == INTEGER_CST)
++ {
++ l_const = lr_arg, r_const = rr_arg;
++ lr_reversep = ll_reversep;
++ }
++ else if (lr_reversep != rr_reversep
++ || lr_inner == 0 || rr_inner == 0
++ || ! operand_equal_p (lr_inner, rr_inner, 0))
++ return 0;
++ else
++ l_const = r_const = 0;
++
++ /* If either comparison code is not correct for our logical operation,
++ fail. However, we can convert a one-bit comparison against zero into
++ the opposite comparison against that bit being set in the field. */
++
++ wanted_code = (code == TRUTH_AND_EXPR ? EQ_EXPR : NE_EXPR);
++ if (lcode != wanted_code)
++ {
++ if (l_const && integer_zerop (l_const) && integer_pow2p (ll_mask))
++ {
++ /* Make the left operand unsigned, since we are only interested
++ in the value of one bit. Otherwise we are doing the wrong
++ thing below. */
++ ll_unsignedp = 1;
++ l_const = ll_mask;
++ }
++ else
++ return 0;
++ }
++
++ /* This is analogous to the code for l_const above. */
++ if (rcode != wanted_code)
++ {
++ if (r_const && integer_zerop (r_const) && integer_pow2p (rl_mask))
++ {
++ rl_unsignedp = 1;
++ r_const = rl_mask;
++ }
++ else
++ return 0;
++ }
++
++ /* See if we can find a mode that contains both fields being compared on
++ the left. If we can't, fail. Otherwise, update all constants and masks
++ to be relative to a field of that size. */
++ first_bit = MIN (ll_bitpos, rl_bitpos);
++ end_bit = MAX (ll_bitpos + ll_bitsize, rl_bitpos + rl_bitsize);
++ if (!get_best_mode (end_bit - first_bit, first_bit, 0, 0,
++ TYPE_ALIGN (TREE_TYPE (ll_inner)), BITS_PER_WORD,
++ volatilep, &lnmode))
++ return 0;
++
++ lnbitsize = GET_MODE_BITSIZE (lnmode);
++ lnbitpos = first_bit & ~ (lnbitsize - 1);
++ lntype = lang_hooks.types.type_for_size (lnbitsize, 1);
++ xll_bitpos = ll_bitpos - lnbitpos, xrl_bitpos = rl_bitpos - lnbitpos;
++
++ if (ll_reversep ? !BYTES_BIG_ENDIAN : BYTES_BIG_ENDIAN)
++ {
++ xll_bitpos = lnbitsize - xll_bitpos - ll_bitsize;
++ xrl_bitpos = lnbitsize - xrl_bitpos - rl_bitsize;
++ }
++
++ ll_mask = const_binop (LSHIFT_EXPR, fold_convert_loc (loc, lntype, ll_mask),
++ size_int (xll_bitpos));
++ rl_mask = const_binop (LSHIFT_EXPR, fold_convert_loc (loc, lntype, rl_mask),
++ size_int (xrl_bitpos));
++ if (ll_mask == NULL_TREE || rl_mask == NULL_TREE)
++ return 0;
++
++ if (l_const)
++ {
++ l_const = fold_convert_loc (loc, lntype, l_const);
++ l_const = unextend (l_const, ll_bitsize, ll_unsignedp, ll_and_mask);
++ l_const = const_binop (LSHIFT_EXPR, l_const, size_int (xll_bitpos));
++ if (l_const == NULL_TREE)
++ return 0;
++ if (! integer_zerop (const_binop (BIT_AND_EXPR, l_const,
++ fold_build1_loc (loc, BIT_NOT_EXPR,
++ lntype, ll_mask))))
++ {
++ warning (0, "comparison is always %d", wanted_code == NE_EXPR);
++
++ return constant_boolean_node (wanted_code == NE_EXPR, truth_type);
++ }
++ }
++ if (r_const)
++ {
++ r_const = fold_convert_loc (loc, lntype, r_const);
++ r_const = unextend (r_const, rl_bitsize, rl_unsignedp, rl_and_mask);
++ r_const = const_binop (LSHIFT_EXPR, r_const, size_int (xrl_bitpos));
++ if (r_const == NULL_TREE)
++ return 0;
++ if (! integer_zerop (const_binop (BIT_AND_EXPR, r_const,
++ fold_build1_loc (loc, BIT_NOT_EXPR,
++ lntype, rl_mask))))
++ {
++ warning (0, "comparison is always %d", wanted_code == NE_EXPR);
++
++ return constant_boolean_node (wanted_code == NE_EXPR, truth_type);
++ }
++ }
++
++ /* If the right sides are not constant, do the same for it. Also,
++ disallow this optimization if a size, signedness or storage order
++ mismatch occurs between the left and right sides. */
++ if (l_const == 0)
++ {
++ if (ll_bitsize != lr_bitsize || rl_bitsize != rr_bitsize
++ || ll_unsignedp != lr_unsignedp || rl_unsignedp != rr_unsignedp
++ || ll_reversep != lr_reversep
++ /* Make sure the two fields on the right
++ correspond to the left without being swapped. */
++ || ll_bitpos - rl_bitpos != lr_bitpos - rr_bitpos)
++ return 0;
++
++ first_bit = MIN (lr_bitpos, rr_bitpos);
++ end_bit = MAX (lr_bitpos + lr_bitsize, rr_bitpos + rr_bitsize);
++ if (!get_best_mode (end_bit - first_bit, first_bit, 0, 0,
++ TYPE_ALIGN (TREE_TYPE (lr_inner)), BITS_PER_WORD,
++ volatilep, &rnmode))
++ return 0;
++
++ rnbitsize = GET_MODE_BITSIZE (rnmode);
++ rnbitpos = first_bit & ~ (rnbitsize - 1);
++ rntype = lang_hooks.types.type_for_size (rnbitsize, 1);
++ xlr_bitpos = lr_bitpos - rnbitpos, xrr_bitpos = rr_bitpos - rnbitpos;
++
++ if (lr_reversep ? !BYTES_BIG_ENDIAN : BYTES_BIG_ENDIAN)
++ {
++ xlr_bitpos = rnbitsize - xlr_bitpos - lr_bitsize;
++ xrr_bitpos = rnbitsize - xrr_bitpos - rr_bitsize;
++ }
++
++ lr_mask = const_binop (LSHIFT_EXPR, fold_convert_loc (loc,
++ rntype, lr_mask),
++ size_int (xlr_bitpos));
++ rr_mask = const_binop (LSHIFT_EXPR, fold_convert_loc (loc,
++ rntype, rr_mask),
++ size_int (xrr_bitpos));
++ if (lr_mask == NULL_TREE || rr_mask == NULL_TREE)
++ return 0;
++
++ /* Make a mask that corresponds to both fields being compared.
++ Do this for both items being compared. If the operands are the
++ same size and the bits being compared are in the same position
++ then we can do this by masking both and comparing the masked
++ results. */
++ ll_mask = const_binop (BIT_IOR_EXPR, ll_mask, rl_mask);
++ lr_mask = const_binop (BIT_IOR_EXPR, lr_mask, rr_mask);
++ if (lnbitsize == rnbitsize
++ && xll_bitpos == xlr_bitpos
++ && lnbitpos >= 0
++ && rnbitpos >= 0)
++ {
++ lhs = make_bit_field_ref (loc, ll_inner, ll_arg,
++ lntype, lnbitsize, lnbitpos,
++ ll_unsignedp || rl_unsignedp, ll_reversep);
++ if (! all_ones_mask_p (ll_mask, lnbitsize))
++ lhs = build2 (BIT_AND_EXPR, lntype, lhs, ll_mask);
++
++ rhs = make_bit_field_ref (loc, lr_inner, lr_arg,
++ rntype, rnbitsize, rnbitpos,
++ lr_unsignedp || rr_unsignedp, lr_reversep);
++ if (! all_ones_mask_p (lr_mask, rnbitsize))
++ rhs = build2 (BIT_AND_EXPR, rntype, rhs, lr_mask);
++
++ return build2_loc (loc, wanted_code, truth_type, lhs, rhs);
++ }
++
++ /* There is still another way we can do something: If both pairs of
++ fields being compared are adjacent, we may be able to make a wider
++ field containing them both.
++
++ Note that we still must mask the lhs/rhs expressions. Furthermore,
++ the mask must be shifted to account for the shift done by
++ make_bit_field_ref. */
++ if (((ll_bitsize + ll_bitpos == rl_bitpos
++ && lr_bitsize + lr_bitpos == rr_bitpos)
++ || (ll_bitpos == rl_bitpos + rl_bitsize
++ && lr_bitpos == rr_bitpos + rr_bitsize))
++ && ll_bitpos >= 0
++ && rl_bitpos >= 0
++ && lr_bitpos >= 0
++ && rr_bitpos >= 0)
++ {
++ tree type;
++
++ lhs = make_bit_field_ref (loc, ll_inner, ll_arg, lntype,
++ ll_bitsize + rl_bitsize,
++ MIN (ll_bitpos, rl_bitpos),
++ ll_unsignedp, ll_reversep);
++ rhs = make_bit_field_ref (loc, lr_inner, lr_arg, rntype,
++ lr_bitsize + rr_bitsize,
++ MIN (lr_bitpos, rr_bitpos),
++ lr_unsignedp, lr_reversep);
++
++ ll_mask = const_binop (RSHIFT_EXPR, ll_mask,
++ size_int (MIN (xll_bitpos, xrl_bitpos)));
++ lr_mask = const_binop (RSHIFT_EXPR, lr_mask,
++ size_int (MIN (xlr_bitpos, xrr_bitpos)));
++ if (ll_mask == NULL_TREE || lr_mask == NULL_TREE)
++ return 0;
++
++ /* Convert to the smaller type before masking out unwanted bits. */
++ type = lntype;
++ if (lntype != rntype)
++ {
++ if (lnbitsize > rnbitsize)
++ {
++ lhs = fold_convert_loc (loc, rntype, lhs);
++ ll_mask = fold_convert_loc (loc, rntype, ll_mask);
++ type = rntype;
++ }
++ else if (lnbitsize < rnbitsize)
++ {
++ rhs = fold_convert_loc (loc, lntype, rhs);
++ lr_mask = fold_convert_loc (loc, lntype, lr_mask);
++ type = lntype;
++ }
++ }
++
++ if (! all_ones_mask_p (ll_mask, ll_bitsize + rl_bitsize))
++ lhs = build2 (BIT_AND_EXPR, type, lhs, ll_mask);
++
++ if (! all_ones_mask_p (lr_mask, lr_bitsize + rr_bitsize))
++ rhs = build2 (BIT_AND_EXPR, type, rhs, lr_mask);
++
++ return build2_loc (loc, wanted_code, truth_type, lhs, rhs);
++ }
++
++ return 0;
++ }
++
++ /* Handle the case of comparisons with constants. If there is something in
++ common between the masks, those bits of the constants must be the same.
++ If not, the condition is always false. Test for this to avoid generating
++ incorrect code below. */
++ result = const_binop (BIT_AND_EXPR, ll_mask, rl_mask);
++ if (! integer_zerop (result)
++ && simple_cst_equal (const_binop (BIT_AND_EXPR, result, l_const),
++ const_binop (BIT_AND_EXPR, result, r_const)) != 1)
++ {
++ if (wanted_code == NE_EXPR)
++ {
++ warning (0, "% of unmatched not-equal tests is always 1");
++ return constant_boolean_node (true, truth_type);
++ }
++ else
++ {
++ warning (0, "% of mutually exclusive equal-tests is always 0");
++ return constant_boolean_node (false, truth_type);
++ }
++ }
++
++ if (lnbitpos < 0)
++ return 0;
++
++ /* Construct the expression we will return. First get the component
++ reference we will make. Unless the mask is all ones the width of
++ that field, perform the mask operation. Then compare with the
++ merged constant. */
++ result = make_bit_field_ref (loc, ll_inner, ll_arg,
++ lntype, lnbitsize, lnbitpos,
++ ll_unsignedp || rl_unsignedp, ll_reversep);
++
++ ll_mask = const_binop (BIT_IOR_EXPR, ll_mask, rl_mask);
++ if (! all_ones_mask_p (ll_mask, lnbitsize))
++ result = build2_loc (loc, BIT_AND_EXPR, lntype, result, ll_mask);
++
++ return build2_loc (loc, wanted_code, truth_type, result,
++ const_binop (BIT_IOR_EXPR, l_const, r_const));
+ }
+
+ /* T is an integer expression that is being multiplied, divided, or taken a
diff --git a/gcc15-pr118362.patch b/gcc15-pr118362.patch
new file mode 100644
index 0000000..5dedb0a
--- /dev/null
+++ b/gcc15-pr118362.patch
@@ -0,0 +1,17 @@
+2025-01-08 Stefan Schulze Frielinghaus
+
+ PR target/118362
+ * config/s390/s390.cc (s390_constant_via_vgbm_p): Punt on
+ CONST_VECTOR with modes larger than 16 bytes.
+
+--- gcc/config/s390/s390.cc.jj
++++ gcc/config/s390/s390.cc
+@@ -2818,7 +2818,7 @@ s390_constant_via_vgbm_p (rtx op, unsigned *mask)
+ unsigned tmp_mask = 0;
+ int nunit, unit_size;
+
+- if (GET_CODE (op) == CONST_VECTOR)
++ if (GET_CODE (op) == CONST_VECTOR && GET_MODE_SIZE (GET_MODE (op)) <= 16)
+ {
+ if (GET_MODE_INNER (GET_MODE (op)) == TImode
+ || GET_MODE_INNER (GET_MODE (op)) == TFmode)
diff --git a/gcc14-rh1574936.patch b/gcc15-rh1574936.patch
similarity index 100%
rename from gcc14-rh1574936.patch
rename to gcc15-rh1574936.patch
diff --git a/gcc14-sparc-config-detection.patch b/gcc15-sparc-config-detection.patch
similarity index 100%
rename from gcc14-sparc-config-detection.patch
rename to gcc15-sparc-config-detection.patch
diff --git a/sources b/sources
index df7802d..27ec149 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-SHA512 (gcc-14.2.1-20241104.tar.xz) = 4a453e1b7e2712fd2a12d28cf2aaf8e76c789f7e747218cdf867eaca84e381305bf119c7db873c5c3f0981657dbefcded77ad74a0960034b95232d906e4b02d0
+SHA512 (gcc-15.0.0-20250109.tar.xz) = 3dc995fc2492494f62977a176bd83e3b08ef87024253060f46681dc483037d8528abecaadd9f0202e2a994239a52d4cc78b3aa3cdad7011ad4c789d789082717
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
-SHA512 (newlib-cygwin-d45261f62a15f8abd94a1031020b9a9f455e4eed.tar.xz) = 31bfc19429797236e268e22b752c5abeabb9c0f39b1058634af8dab329b4f028fc72a35888193c9575f6cee5cf2c069669d79fcb4d4e3a4318f57413452f707d
+SHA512 (newlib-cygwin-2e4db338ac125579d555aeee516e48588a628a16.tar.xz) = 839bb0c45b5023a83e1a5bf8773050af46bd075754502fc49a62ab860144c9a6bdc0a7d52e6c7ded87ba13ce58192755dd3f83333bc7c61ffb184fef4142a808
SHA512 (nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz) = 941e763af8601b89f0e4ec48a2d68ae0a8e70ee1e6ba6859394b021ad7bd7d143cc529f3c35c08d7f84e5554980ddcc97cf05b6c4755c2bc36c91161b79e8cea
From 130b5c0e0eb90884ad9090e90b511a383e9cede4 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Thu, 9 Jan 2025 09:43:05 +0100
Subject: [PATCH 30/41] Fix up PR118362 patch.
---
gcc15-pr118362.patch | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/gcc15-pr118362.patch b/gcc15-pr118362.patch
index 5dedb0a..bcb5d73 100644
--- a/gcc15-pr118362.patch
+++ b/gcc15-pr118362.patch
@@ -1,12 +1,12 @@
-2025-01-08 Stefan Schulze Frielinghaus
+2025-01-09 Stefan Schulze Frielinghaus
PR target/118362
* config/s390/s390.cc (s390_constant_via_vgbm_p): Punt on
CONST_VECTOR with modes larger than 16 bytes.
---- gcc/config/s390/s390.cc.jj
-+++ gcc/config/s390/s390.cc
-@@ -2818,7 +2818,7 @@ s390_constant_via_vgbm_p (rtx op, unsigned *mask)
+--- gcc/config/s390/s390.cc.jj 2025-01-07 18:30:20.697392148 +0100
++++ gcc/config/s390/s390.cc 2025-01-09 09:41:57.428250479 +0100
+@@ -2818,7 +2818,7 @@ s390_constant_via_vgbm_p (rtx op, unsign
unsigned tmp_mask = 0;
int nunit, unit_size;
@@ -14,4 +14,4 @@
+ if (GET_CODE (op) == CONST_VECTOR && GET_MODE_SIZE (GET_MODE (op)) <= 16)
{
if (GET_MODE_INNER (GET_MODE (op)) == TImode
- || GET_MODE_INNER (GET_MODE (op)) == TFmode)
+ || GET_MODE_INNER (GET_MODE (op)) == TFmode)
From f7d926bcedc992f16cbc06305ec58adb5cd6196e Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Thu, 9 Jan 2025 21:35:16 +0100
Subject: [PATCH 31/41] 15.0.0-0.3
---
gcc.spec | 4 ----
1 file changed, 4 deletions(-)
diff --git a/gcc.spec b/gcc.spec
index 8656fd3..2e6336a 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1465,12 +1465,8 @@ rm -rf %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/
rm -rf %{buildroot}%{_prefix}/%{_lib}/libc[cp]1*
mv -f %{buildroot}%{_prefix}/nvptx-none/lib/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/
mv -f %{buildroot}%{_prefix}/nvptx-none/lib/mgomp/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/mgomp/
-mv -f %{buildroot}%{_prefix}/nvptx-none/lib/mptx-3.1/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/mptx-3.1/
-mv -f %{buildroot}%{_prefix}/nvptx-none/lib/mgomp/mptx-3.1/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/mgomp/mptx-3.1/
mv -f %{buildroot}%{_prefix}/lib/gcc/nvptx-none/%{gcc_major}/*.a %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/
mv -f %{buildroot}%{_prefix}/lib/gcc/nvptx-none/%{gcc_major}/mgomp/*.a %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/mgomp/
-mv -f %{buildroot}%{_prefix}/lib/gcc/nvptx-none/%{gcc_major}/mptx-3.1/*.a %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/mptx-3.1/
-mv -f %{buildroot}%{_prefix}/lib/gcc/nvptx-none/%{gcc_major}/mgomp/mptx-3.1/*.a %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/mgomp/mptx-3.1/
find %{buildroot}%{_prefix}/lib/gcc/nvptx-none %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none \
%{buildroot}%{_prefix}/nvptx-none/lib -name \*.la | xargs rm
cd ..
From 33699f47c3926956c3481c9070e48fcc1d1c2241 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Sat, 11 Jan 2025 11:38:09 +0100
Subject: [PATCH 32/41] 15.0.0-0.4
---
.gitignore | 1 +
gcc.spec | 21 ++++++++++++++++-----
gcc15-pr118362.patch | 17 -----------------
sources | 2 +-
4 files changed, 18 insertions(+), 23 deletions(-)
delete mode 100644 gcc15-pr118362.patch
diff --git a/.gitignore b/.gitignore
index b074da3..eba52e7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
/nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz
/gcc-15.0.0-20250109.tar.xz
/newlib-cygwin-2e4db338ac125579d555aeee516e48588a628a16.tar.xz
+/gcc-15.0.0-20250111.tar.xz
diff --git a/gcc.spec b/gcc.spec
index 2e6336a..0c36924 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,5 +1,5 @@
-%global DATE 20250109
-%global gitrev f890bd2c90be240213d8f1023aed4ad9647a293c
+%global DATE 20250111
+%global gitrev 20e73534b5a3aeac8624799d31783f12f24e29cb
%global gcc_version 15.0.0
%global gcc_major 15
# Note, gcc_release must be integer, if you want to add suffixes to
@@ -143,7 +143,7 @@
Summary: Various compilers (C, C++, Objective-C, ...)
Name: gcc
Version: %{gcc_version}
-Release: %{gcc_release}.3%{?dist}
+Release: %{gcc_release}.4%{?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
@@ -299,7 +299,6 @@ Patch9: gcc15-Wno-format-security.patch
Patch10: gcc15-rh1574936.patch
Patch11: gcc15-d-shared-libphobos.patch
Patch12: gcc15-pr118206.patch
-Patch13: gcc15-pr118362.patch
Patch50: isl-rh2155127.patch
@@ -915,7 +914,6 @@ so that there cannot be any synchronization problems.
%endif
%patch -P11 -p0 -b .d-shared-libphobos~
%patch -P12 -p0 -b .pr118206~
-%patch -P13 -p0 -b .pr118362~
%patch -P50 -p0 -b .rh2155127~
touch -r isl-0.24/m4/ax_prog_cxx_for_build.m4 isl-0.24/m4/ax_prog_cc_for_build.m4
@@ -3675,5 +3673,18 @@ end
%endif
%changelog
+* Sat Jan 11 2025 Jakub Jelinek 15.0.0-0.4
+- update from trunk
+ - PRs ada/18765, ada/118274, c/116060, c/117866, c/118376, c++/117792,
+ c++/117887, c++/117925, c++/117937, c++/117993, c++/118060,
+ c++/118277, c++/118387, c++/118391, fortran/108434, fortran/118337,
+ ipa/118138, rtl-optimization/117186, rtl-optimization/117467,
+ rtl-optimization/117934, rtl-optimization/118266, target/65181,
+ target/118017, target/118131, target/118188, target/118332,
+ target/118362, testsuite/118025, tree-optimization/88575,
+ tree-optimization/116126, tree-optimization/117927,
+ tree-optimization/118206, tree-optimization/118211,
+ tree-optimization/118344
+
* Thu Jan 9 2025 Jakub Jelinek 15.0.0-0.3
- new package
diff --git a/gcc15-pr118362.patch b/gcc15-pr118362.patch
deleted file mode 100644
index bcb5d73..0000000
--- a/gcc15-pr118362.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-2025-01-09 Stefan Schulze Frielinghaus
-
- PR target/118362
- * config/s390/s390.cc (s390_constant_via_vgbm_p): Punt on
- CONST_VECTOR with modes larger than 16 bytes.
-
---- gcc/config/s390/s390.cc.jj 2025-01-07 18:30:20.697392148 +0100
-+++ gcc/config/s390/s390.cc 2025-01-09 09:41:57.428250479 +0100
-@@ -2818,7 +2818,7 @@ s390_constant_via_vgbm_p (rtx op, unsign
- unsigned tmp_mask = 0;
- int nunit, unit_size;
-
-- if (GET_CODE (op) == CONST_VECTOR)
-+ if (GET_CODE (op) == CONST_VECTOR && GET_MODE_SIZE (GET_MODE (op)) <= 16)
- {
- if (GET_MODE_INNER (GET_MODE (op)) == TImode
- || GET_MODE_INNER (GET_MODE (op)) == TFmode)
diff --git a/sources b/sources
index 27ec149..528bdd4 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-SHA512 (gcc-15.0.0-20250109.tar.xz) = 3dc995fc2492494f62977a176bd83e3b08ef87024253060f46681dc483037d8528abecaadd9f0202e2a994239a52d4cc78b3aa3cdad7011ad4c789d789082717
+SHA512 (gcc-15.0.0-20250111.tar.xz) = 4a34058f92167ccfb08ddbbac0b4aa78599b98fd5768ecc02cf89e35e8609b5dcb9e276bf98dd854d24f965795d79497dbd4a3c8ef93d816ee689945689daf07
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
SHA512 (newlib-cygwin-2e4db338ac125579d555aeee516e48588a628a16.tar.xz) = 839bb0c45b5023a83e1a5bf8773050af46bd075754502fc49a62ab860144c9a6bdc0a7d52e6c7ded87ba13ce58192755dd3f83333bc7c61ffb184fef4142a808
SHA512 (nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz) = 941e763af8601b89f0e4ec48a2d68ae0a8e70ee1e6ba6859394b021ad7bd7d143cc529f3c35c08d7f84e5554980ddcc97cf05b6c4755c2bc36c91161b79e8cea
From 37a386303463dbdaefb097d36a730b6e8edc7df1 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Tue, 14 Jan 2025 00:05:44 +0100
Subject: [PATCH 33/41] 15.0.1-0.1
---
.gitignore | 1 +
gcc.spec | 52 +++++++++++++++++++++++++----------------
gcc15-d-deps.patch | 19 +++++++++++++++
gcc15-pr118438.patch | 55 ++++++++++++++++++++++++++++++++++++++++++++
sources | 2 +-
5 files changed, 108 insertions(+), 21 deletions(-)
create mode 100644 gcc15-d-deps.patch
create mode 100644 gcc15-pr118438.patch
diff --git a/.gitignore b/.gitignore
index eba52e7..aacda01 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
/gcc-15.0.0-20250109.tar.xz
/newlib-cygwin-2e4db338ac125579d555aeee516e48588a628a16.tar.xz
/gcc-15.0.0-20250111.tar.xz
+/gcc-15.0.1-20250113.tar.xz
diff --git a/gcc.spec b/gcc.spec
index 0c36924..1492634 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,6 +1,6 @@
-%global DATE 20250111
-%global gitrev 20e73534b5a3aeac8624799d31783f12f24e29cb
-%global gcc_version 15.0.0
+%global DATE 20250113
+%global gitrev 074f598e85b434066965fa130b38f32abcbc4f5e
+%global gcc_version 15.0.1
%global gcc_major 15
# Note, gcc_release must be integer, if you want to add suffixes to
# %%{release}, append them after %%{gcc_release} on Release: line.
@@ -143,7 +143,7 @@
Summary: Various compilers (C, C++, Objective-C, ...)
Name: gcc
Version: %{gcc_version}
-Release: %{gcc_release}.4%{?dist}
+Release: %{gcc_release}.1%{?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
@@ -299,6 +299,8 @@ Patch9: gcc15-Wno-format-security.patch
Patch10: gcc15-rh1574936.patch
Patch11: gcc15-d-shared-libphobos.patch
Patch12: gcc15-pr118206.patch
+Patch13: gcc15-d-deps.patch
+Patch14: gcc15-pr118438.patch
Patch50: isl-rh2155127.patch
@@ -914,6 +916,8 @@ so that there cannot be any synchronization problems.
%endif
%patch -P11 -p0 -b .d-shared-libphobos~
%patch -P12 -p0 -b .pr118206~
+%patch -P13 -p0 -b .d-deps~
+%patch -P14 -p0 -b .pr118438~
%patch -P50 -p0 -b .rh2155127~
touch -r isl-0.24/m4/ax_prog_cxx_for_build.m4 isl-0.24/m4/ax_prog_cc_for_build.m4
@@ -1725,8 +1729,8 @@ ln -sf ../../../libgo.so.23.* libgo.so
ln -sf ../../../libquadmath.so.0.* libquadmath.so
%endif
%if %{build_d}
-ln -sf ../../../libgdruntime.so.5.* libgdruntime.so
-ln -sf ../../../libgphobos.so.5.* libgphobos.so
+ln -sf ../../../libgdruntime.so.6.* libgdruntime.so
+ln -sf ../../../libgphobos.so.6.* libgphobos.so
%endif
%if %{build_m2}
for i in cor iso log min pim; do
@@ -1760,8 +1764,8 @@ ln -sf ../../../../%{_lib}/libgo.so.23.* libgo.so
ln -sf ../../../../%{_lib}/libquadmath.so.0.* libquadmath.so
%endif
%if %{build_d}
-ln -sf ../../../../%{_lib}/libgdruntime.so.5.* libgdruntime.so
-ln -sf ../../../../%{_lib}/libgphobos.so.5.* libgphobos.so
+ln -sf ../../../../%{_lib}/libgdruntime.so.6.* libgdruntime.so
+ln -sf ../../../../%{_lib}/libgphobos.so.6.* libgphobos.so
%endif
%if %{build_m2}
for i in cor iso log min pim; do
@@ -1906,10 +1910,10 @@ echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libquadmath.so.0.* | sed '
%endif
%if %{build_d}
rm -f libgdruntime.so libgphobos.so
-echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgdruntime.so.5.* | sed 's,^.*libg,libg,'`' )' > libgdruntime.so
-echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgdruntime.so.5.* | sed 's,^.*libg,libg,'`' )' > 64/libgdruntime.so
-echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgphobos.so.5.* | sed 's,^.*libg,libg,'`' )' > libgphobos.so
-echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgphobos.so.5.* | sed 's,^.*libg,libg,'`' )' > 64/libgphobos.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgdruntime.so.6.* | sed 's,^.*libg,libg,'`' )' > libgdruntime.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgdruntime.so.6.* | sed 's,^.*libg,libg,'`' )' > 64/libgdruntime.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgphobos.so.6.* | sed 's,^.*libg,libg,'`' )' > libgphobos.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgphobos.so.6.* | sed 's,^.*libg,libg,'`' )' > 64/libgphobos.so
%endif
%if %{build_m2}
for i in cor iso log min pim; do
@@ -2023,10 +2027,10 @@ echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libquadmath.so.0.* | sed '
%endif
%if %{build_d}
rm -f libgdruntime.so libgphobos.so
-echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgdruntime.so.5.* | sed 's,^.*libg,libg,'`' )' > libgdruntime.so
-echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgdruntime.so.5.* | sed 's,^.*libg,libg,'`' )' > 32/libgdruntime.so
-echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgphobos.so.5.* | sed 's,^.*libg,libg,'`' )' > libgphobos.so
-echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgphobos.so.5.* | sed 's,^.*libg,libg,'`' )' > 32/libgphobos.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgdruntime.so.6.* | sed 's,^.*libg,libg,'`' )' > libgdruntime.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgdruntime.so.6.* | sed 's,^.*libg,libg,'`' )' > 32/libgdruntime.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgphobos.so.6.* | sed 's,^.*libg,libg,'`' )' > libgphobos.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgphobos.so.6.* | sed 's,^.*libg,libg,'`' )' > 32/libgphobos.so
%endif
%if %{build_m2}
for i in cor iso log min pim; do
@@ -2203,8 +2207,8 @@ chmod 755 %{buildroot}%{_prefix}/%{_lib}/libcc1.so.0.*
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libquadmath.so.0.*
%endif
%if %{build_d}
-chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgdruntime.so.5.*
-chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgphobos.so.5.*
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgdruntime.so.6.*
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgphobos.so.6.*
%endif
%if %{build_m2}
for i in cor iso log min pim; do
@@ -3127,8 +3131,8 @@ end
%doc rpm.doc/gdc/*
%files -n libgphobos
-%{_prefix}/%{_lib}/libgdruntime.so.5*
-%{_prefix}/%{_lib}/libgphobos.so.5*
+%{_prefix}/%{_lib}/libgdruntime.so.6*
+%{_prefix}/%{_lib}/libgphobos.so.6*
%doc rpm.doc/libphobos/*
%files -n libgphobos-static
@@ -3673,6 +3677,14 @@ end
%endif
%changelog
+* Mon Jan 11 2025 Jakub Jelinek 15.0.1-0.1
+- update from trunk
+ - PRs c/118112, c++/114630, d/117701, fortran/115788, fortran/118432,
+ lto/118181, middle-end/64242, middle-end/118303, middle-end/118411,
+ middle-end/118415, modula2/118453, rtl-optimization/107455,
+ target/115910, target/115921, target/118418, tree-optimization/117119,
+ tree-optimization/117997, tree-optimization/118409
+
* Sat Jan 11 2025 Jakub Jelinek 15.0.0-0.4
- update from trunk
- PRs ada/18765, ada/118274, c/116060, c/117866, c/118376, c++/117792,
diff --git a/gcc15-d-deps.patch b/gcc15-d-deps.patch
new file mode 100644
index 0000000..7f77e69
--- /dev/null
+++ b/gcc15-d-deps.patch
@@ -0,0 +1,19 @@
+2025-01-13 Arsen Arsenović
+ Jakub Jelinek
+
+ * Make-lang.in (DCOMPILE, DPOSTCOMPILE): Use $(basename $(@F))
+ instead of $(*F).
+
+--- gcc/d/Make-lang.in.jj 2025-01-13 09:12:07.408983471 +0100
++++ gcc/d/Make-lang.in 2025-01-13 10:57:16.398315375 +0100
+@@ -65,8 +65,8 @@ ALL_DFLAGS = $(DFLAGS-$@) $(GDCFLAGS) -f
+ $(WARN_DFLAGS)
+
+ DCOMPILE.base = $(GDC) -c $(ALL_DFLAGS) -o $@
+-DCOMPILE = $(DCOMPILE.base) -MT $@ -MMD -MP -MF $(@D)/$(DEPDIR)/$(*F).TPo
+-DPOSTCOMPILE = @mv $(@D)/$(DEPDIR)/$(*F).TPo $(@D)/$(DEPDIR)/$(*F).Po
++DCOMPILE = $(DCOMPILE.base) -MT $@ -MMD -MP -MF $(@D)/$(DEPDIR)/$(basename $(@F)).TPo
++DPOSTCOMPILE = @mv $(@D)/$(DEPDIR)/$(basename $(@F)).TPo $(@D)/$(DEPDIR)/$(basename $(@F)).Po
+ DLINKER = $(GDC) $(NO_PIE_FLAG) -lstdc++
+
+ # Like LINKER, but use a mutex for serializing front end links.
diff --git a/gcc15-pr118438.patch b/gcc15-pr118438.patch
new file mode 100644
index 0000000..f428963
--- /dev/null
+++ b/gcc15-pr118438.patch
@@ -0,0 +1,55 @@
+2025-01-13 Jakub Jelinek
+
+ PR d/118438
+ * libdruntime/core/sys/posix/sys/socket.d: Cherry-pick from upstream.
+
+--- libphobos/libdruntime/core/sys/posix/sys/socket.d.jj
++++ libphobos/libdruntime/core/sys/posix/sys/socket.d
+@@ -317,6 +318,7 @@ version (linux)
+ SO_RCVLOWAT = 0x1004,
+ SO_RCVTIMEO = 0x1006,
+ SO_REUSEADDR = 0x0004,
++ SO_REUSEPORT = 0x0200,
+ SO_SNDBUF = 0x1001,
+ SO_SNDLOWAT = 0x1003,
+ SO_SNDTIMEO = 0x1005,
+@@ -351,6 +353,7 @@ version (linux)
+ SO_RCVLOWAT = 0x1004,
+ SO_RCVTIMEO = 0x1006,
+ SO_REUSEADDR = 0x0004,
++ SO_REUSEPORT = 0x0200,
+ SO_SNDBUF = 0x1001,
+ SO_SNDLOWAT = 0x1003,
+ SO_SNDTIMEO = 0x1005,
+@@ -385,6 +388,7 @@ version (linux)
+ SO_RCVLOWAT = 16,
+ SO_RCVTIMEO = 18,
+ SO_REUSEADDR = 2,
++ SO_REUSEPORT = 15,
+ SO_SNDBUF = 7,
+ SO_SNDLOWAT = 17,
+ SO_SNDTIMEO = 19,
+@@ -454,6 +458,7 @@ version (linux)
+ SO_RCVLOWAT = 18,
+ SO_RCVTIMEO = 20,
+ SO_REUSEADDR = 2,
++ SO_REUSEPORT = 15,
+ SO_SNDBUF = 7,
+ SO_SNDLOWAT = 19,
+ SO_SNDTIMEO = 21,
+@@ -522,6 +528,7 @@ version (linux)
+ SO_RCVLOWAT = 18,
+ SO_RCVTIMEO = 20,
+ SO_REUSEADDR = 2,
++ SO_REUSEPORT = 15,
+ SO_SNDBUF = 7,
+ SO_SNDLOWAT = 19,
+ SO_SNDTIMEO = 21,
+@@ -556,6 +563,7 @@ version (linux)
+ SO_RCVLOWAT = 18,
+ SO_RCVTIMEO = 20,
+ SO_REUSEADDR = 2,
++ SO_REUSEPORT = 15,
+ SO_SNDBUF = 7,
+ SO_SNDLOWAT = 19,
+ SO_SNDTIMEO = 21,
diff --git a/sources b/sources
index 528bdd4..83dfcc3 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-SHA512 (gcc-15.0.0-20250111.tar.xz) = 4a34058f92167ccfb08ddbbac0b4aa78599b98fd5768ecc02cf89e35e8609b5dcb9e276bf98dd854d24f965795d79497dbd4a3c8ef93d816ee689945689daf07
+SHA512 (gcc-15.0.1-20250113.tar.xz) = 88d7eac76c25894b15836925f108deb65ce4d625a7a7de81ef350fdc5c047c46ded96ecbcfcf11271351c64bb6e8e31e489f1b56574a4e5211540b6be308f160
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
SHA512 (newlib-cygwin-2e4db338ac125579d555aeee516e48588a628a16.tar.xz) = 839bb0c45b5023a83e1a5bf8773050af46bd075754502fc49a62ab860144c9a6bdc0a7d52e6c7ded87ba13ce58192755dd3f83333bc7c61ffb184fef4142a808
SHA512 (nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz) = 941e763af8601b89f0e4ec48a2d68ae0a8e70ee1e6ba6859394b021ad7bd7d143cc529f3c35c08d7f84e5554980ddcc97cf05b6c4755c2bc36c91161b79e8cea
From 741ed4a5a942f58193bb6dfcedd443c50647c447 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Tue, 14 Jan 2025 00:08:34 +0100
Subject: [PATCH 34/41] 15.0.1-0.1
---
gcc.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc.spec b/gcc.spec
index 1492634..4fd2621 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -3677,7 +3677,7 @@ end
%endif
%changelog
-* Mon Jan 11 2025 Jakub Jelinek 15.0.1-0.1
+* Mon Jan 13 2025 Jakub Jelinek 15.0.1-0.1
- update from trunk
- PRs c/118112, c++/114630, d/117701, fortran/115788, fortran/118432,
lto/118181, middle-end/64242, middle-end/118303, middle-end/118411,
From 48a562d802e39ab6199694cd9f40a25698c31c33 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Tue, 14 Jan 2025 11:45:25 +0100
Subject: [PATCH 35/41] 15.0.1-0.2
---
.gitignore | 1 +
gcc.spec | 12 +++++++++---
sources | 2 +-
3 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/.gitignore b/.gitignore
index aacda01..b6a5b4a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@
/newlib-cygwin-2e4db338ac125579d555aeee516e48588a628a16.tar.xz
/gcc-15.0.0-20250111.tar.xz
/gcc-15.0.1-20250113.tar.xz
+/gcc-15.0.1-20250114.tar.xz
diff --git a/gcc.spec b/gcc.spec
index 4fd2621..dffd6b1 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,5 +1,5 @@
-%global DATE 20250113
-%global gitrev 074f598e85b434066965fa130b38f32abcbc4f5e
+%global DATE 20250114
+%global gitrev 6adb681d9cf55f12e8a232c1e9a009e5ca5fdde5
%global gcc_version 15.0.1
%global gcc_major 15
# Note, gcc_release must be integer, if you want to add suffixes to
@@ -143,7 +143,7 @@
Summary: Various compilers (C, C++, Objective-C, ...)
Name: gcc
Version: %{gcc_version}
-Release: %{gcc_release}.1%{?dist}
+Release: %{gcc_release}.2%{?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
@@ -3677,6 +3677,12 @@ end
%endif
%changelog
+* Tue Jan 14 2025 Jakub Jelinek 15.0.1-0.2
+- update from trunk
+- update from trunk
+ - PRs ada/118459, c/116871, c++/118445, modula2/116557, target/116030,
+ target/117682, tree-optimization/118405
+
* Mon Jan 13 2025 Jakub Jelinek 15.0.1-0.1
- update from trunk
- PRs c/118112, c++/114630, d/117701, fortran/115788, fortran/118432,
diff --git a/sources b/sources
index 83dfcc3..9794578 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-SHA512 (gcc-15.0.1-20250113.tar.xz) = 88d7eac76c25894b15836925f108deb65ce4d625a7a7de81ef350fdc5c047c46ded96ecbcfcf11271351c64bb6e8e31e489f1b56574a4e5211540b6be308f160
+SHA512 (gcc-15.0.1-20250114.tar.xz) = 54d1749fb3b57c0e96bf9887b64c60d8e61cd634ab460ec03b7e909ea4a54f898988984d2dff7cdefd093ee9c8a235b70f20d2f005cdf14313077b28ddcf6759
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
SHA512 (newlib-cygwin-2e4db338ac125579d555aeee516e48588a628a16.tar.xz) = 839bb0c45b5023a83e1a5bf8773050af46bd075754502fc49a62ab860144c9a6bdc0a7d52e6c7ded87ba13ce58192755dd3f83333bc7c61ffb184fef4142a808
SHA512 (nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz) = 941e763af8601b89f0e4ec48a2d68ae0a8e70ee1e6ba6859394b021ad7bd7d143cc529f3c35c08d7f84e5554980ddcc97cf05b6c4755c2bc36c91161b79e8cea
From 2f3ea848feb3c9b800e2367ee5a8b81a7fadd5ce Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Tue, 14 Jan 2025 11:45:44 +0100
Subject: [PATCH 36/41] 15.0.1-0.2
---
gcc.spec | 1 -
1 file changed, 1 deletion(-)
diff --git a/gcc.spec b/gcc.spec
index dffd6b1..db61327 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -3678,7 +3678,6 @@ end
%changelog
* Tue Jan 14 2025 Jakub Jelinek 15.0.1-0.2
-- update from trunk
- update from trunk
- PRs ada/118459, c/116871, c++/118445, modula2/116557, target/116030,
target/117682, tree-optimization/118405
From ca394fe46b6a7ffa6ee3c26cd46f30dcbc2beb94 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Tue, 14 Jan 2025 13:11:09 +0100
Subject: [PATCH 37/41] 15.0.1-0.3
---
gcc.spec | 7 +-
gcc15-pr117231.patch | 177 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 183 insertions(+), 1 deletion(-)
create mode 100644 gcc15-pr117231.patch
diff --git a/gcc.spec b/gcc.spec
index db61327..5746ff6 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -143,7 +143,7 @@
Summary: Various compilers (C, C++, Objective-C, ...)
Name: gcc
Version: %{gcc_version}
-Release: %{gcc_release}.2%{?dist}
+Release: %{gcc_release}.3%{?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
@@ -301,6 +301,7 @@ Patch11: gcc15-d-shared-libphobos.patch
Patch12: gcc15-pr118206.patch
Patch13: gcc15-d-deps.patch
Patch14: gcc15-pr118438.patch
+Patch15: gcc15-pr117231.patch
Patch50: isl-rh2155127.patch
@@ -918,6 +919,7 @@ so that there cannot be any synchronization problems.
%patch -P12 -p0 -b .pr118206~
%patch -P13 -p0 -b .d-deps~
%patch -P14 -p0 -b .pr118438~
+%patch -P15 -p0 -b .pr117231~
%patch -P50 -p0 -b .rh2155127~
touch -r isl-0.24/m4/ax_prog_cxx_for_build.m4 isl-0.24/m4/ax_prog_cc_for_build.m4
@@ -3677,6 +3679,9 @@ end
%endif
%changelog
+* Tue Jan 14 2025 Jakub Jelinek 15.0.1-0.3
+- temporary fix for coroutine range for handling (PR c++/117231)
+
* Tue Jan 14 2025 Jakub Jelinek 15.0.1-0.2
- update from trunk
- PRs ada/118459, c/116871, c++/118445, modula2/116557, target/116030,
diff --git a/gcc15-pr117231.patch b/gcc15-pr117231.patch
new file mode 100644
index 0000000..ad1a83a
--- /dev/null
+++ b/gcc15-pr117231.patch
@@ -0,0 +1,177 @@
+In the current implementation, statement expressions were intentionally
+unsupported (as a C++ extension). However since they are quite heavily
+used by end-users and also now emitted by the compiler in some cases
+we are now working to add them. This first patch ensures that we
+recurse into statement expressions (and therefore handle coroutine
+keywords that might appear inside them).
+
+ PR c++/115851
+ PR c++/116914
+ PR c++/117231
+
+gcc/cp/ChangeLog:
+
+ * coroutines.cc (await_statement_expander): Walk into
+ statement expressions.
+ (await_statement_walker): Likewise.
+
+gcc/testsuite/ChangeLog:
+
+ * g++.dg/coroutines/pr115851.C: New test.
+ * g++.dg/coroutines/pr116914.C: New test.
+ * g++.dg/coroutines/pr117231.C: New test.
+
+Signed-off-by: Iain Sandoe
+---
+ gcc/cp/coroutines.cc | 22 ++++++++++++
+ gcc/testsuite/g++.dg/coroutines/pr115851.C | 35 +++++++++++++++++++
+ gcc/testsuite/g++.dg/coroutines/pr116914.C | 40 ++++++++++++++++++++++
+ gcc/testsuite/g++.dg/coroutines/pr117231.C | 21 ++++++++++++
+ 4 files changed, 118 insertions(+)
+ create mode 100644 gcc/testsuite/g++.dg/coroutines/pr115851.C
+ create mode 100644 gcc/testsuite/g++.dg/coroutines/pr116914.C
+ create mode 100644 gcc/testsuite/g++.dg/coroutines/pr117231.C
+
+--- gcc/cp/coroutines.cc
++++ gcc/cp/coroutines.cc
+@@ -2128,6 +2128,14 @@ await_statement_expander (tree *stmt, int *do_subtree, void *d)
+ }
+ else if (EXPR_P (*stmt))
+ {
++ /* Look for ({}) at the top level - just recurse into these. */
++ if (TREE_CODE (*stmt) == EXPR_STMT)
++ {
++ tree inner = EXPR_STMT_EXPR (*stmt);
++ if (TREE_CODE (inner) == STATEMENT_LIST
++ || TREE_CODE (inner) == BIND_EXPR)
++ return NULL_TREE; // process contents
++ }
+ process_one_statement (stmt, d);
+ *do_subtree = 0; /* Done subtrees. */
+ }
+@@ -3857,6 +3865,20 @@ await_statement_walker (tree *stmt, int *do_subtree, void *d)
+ if (!(cp_walk_tree (stmt, find_any_await, &await_ptr, &visited)))
+ return NULL_TREE; /* Nothing special to do here. */
+
++ /* Handle statement expressions. */
++ if (TREE_CODE (expr) == EXPR_STMT)
++ {
++ tree inner = EXPR_STMT_EXPR (expr);
++ if (TREE_CODE (inner) == STATEMENT_LIST
++ || TREE_CODE (inner) == BIND_EXPR)
++ {
++ res = cp_walk_tree (&EXPR_STMT_EXPR (expr),
++ await_statement_walker, d, NULL);
++ *do_subtree = 0;
++ return res;
++ }
++ }
++
+ visited.empty ();
+ awpts->saw_awaits = 0;
+ hash_set truth_aoif_to_expand;
+--- gcc/testsuite/g++.dg/coroutines/pr115851.C
++++ gcc/testsuite/g++.dg/coroutines/pr115851.C
+@@ -0,0 +1,35 @@
++// { dg-additional-options "-Wno-pedantic " }
++#include
++
++struct SuspendNever {
++ bool await_ready() noexcept;
++ void await_suspend(std::coroutine_handle<>) noexcept;
++ void await_resume() noexcept;
++};
++
++struct Coroutine;
++
++struct PromiseType {
++ Coroutine get_return_object();
++ SuspendNever initial_suspend();
++ SuspendNever final_suspend() noexcept;
++ void unhandled_exception () {}
++};
++
++struct Coroutine {
++ using promise_type = PromiseType;
++};
++
++struct ErrorOr {
++ int release_error();
++};
++
++void warnln(int const&);
++
++Coroutine __async_test_input_basic() {
++ ({
++ co_await SuspendNever{};
++ ErrorOr _temporary_result2;
++ warnln(_temporary_result2.release_error());
++ });
++}
+--- gcc/testsuite/g++.dg/coroutines/pr116914.C
++++ gcc/testsuite/g++.dg/coroutines/pr116914.C
+@@ -0,0 +1,40 @@
++// { dg-additional-options "-std=gnu++20 -fpreprocessed" }
++
++namespace std {
++template struct coroutine_traits : a {};
++template struct coroutine_handle {
++ static coroutine_handle from_address(void *);
++ operator coroutine_handle<>();
++ void *address();
++};
++struct b {
++ int await_ready() noexcept;
++ void await_suspend(coroutine_handle<>) noexcept;
++ void await_resume() noexcept;
++};
++} // namespace std
++struct c;
++struct d {
++ c get_return_object();
++ std::b initial_suspend();
++ std::b final_suspend() noexcept;
++ void unhandled_exception();
++ std::b yield_value(int);
++};
++struct e {
++ void operator++();
++ int operator*();
++ int operator!=(e);
++};
++struct c {
++ using promise_type = d;
++ e begin();
++ e end();
++ c f() {
++ c g;
++ for (auto h : g) {
++ auto i = 1;
++ co_yield i;
++ }
++ }
++};
+--- gcc/testsuite/g++.dg/coroutines/pr117231.C
++++ gcc/testsuite/g++.dg/coroutines/pr117231.C
+@@ -0,0 +1,21 @@
++// { dg-additional-options "-std=c++23 " }
++// { dg-do run }
++#include
++//#include
++#include
++
++std::generator get_seq()
++{
++ std::vector data_{1, 2, 3};
++ for (auto item : data_)
++ co_yield item;
++}
++
++int main()
++{
++ int res = 0;
++ for (auto item : get_seq())
++ res = item; //std::println("{}", item);
++ if (res != 3)
++ __builtin_abort ();
++}
From b46eae0019f2b703482637ae7c7fad31a31e919d Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Tue, 14 Jan 2025 20:34:30 +0100
Subject: [PATCH 38/41] Add noautorebuild.
---
noautorebuild | 1 +
1 file changed, 1 insertion(+)
create mode 100644 noautorebuild
diff --git a/noautorebuild b/noautorebuild
new file mode 100644
index 0000000..a8dc544
--- /dev/null
+++ b/noautorebuild
@@ -0,0 +1 @@
+GCC has been already rebuilt and will be rebuilt again very soon, so the mass rebuild is waste of resources for it.
From c142771541f144194873333eb25ff07ade4e44fb Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Thu, 16 Jan 2025 19:32:58 +0000
Subject: [PATCH 39/41] Rebuilt for
https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
---
gcc.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/gcc.spec b/gcc.spec
index 5746ff6..fdcd9a8 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -143,7 +143,7 @@
Summary: Various compilers (C, C++, Objective-C, ...)
Name: gcc
Version: %{gcc_version}
-Release: %{gcc_release}.3%{?dist}
+Release: %{gcc_release}.3%{?dist}.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
@@ -3679,6 +3679,9 @@ end
%endif
%changelog
+* Thu Jan 16 2025 Fedora Release Engineering - 15.0.1-0.3.1
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
+
* Tue Jan 14 2025 Jakub Jelinek 15.0.1-0.3
- temporary fix for coroutine range for handling (PR c++/117231)
From 46a6d807645871b4d243ef2be35f9677bd4d68cb Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Tue, 21 Jan 2025 17:25:58 +0100
Subject: [PATCH 40/41] Fix up sed command for libstdc++ modules json.
---
gcc.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc.spec b/gcc.spec
index fdcd9a8..2f504cb 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1712,7 +1712,7 @@ 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/
-sed -e 's,\.\./include/,../../../../include,' \
+sed -e 's,\.\./include/,../../../../include/,' \
%{buildroot}%{_prefix}/%{_lib}/libstdc++.modules.json \
> $FULLPATH/libstdc++.modules.json
From f97b22af1011d1a9629418ccb1bed9f6a5196855 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Sat, 25 Jan 2025 11:06:55 +0100
Subject: [PATCH 41/41] 15.0.1-0.4
---
.gitignore | 1 +
gcc.spec | 59 ++++++++++++++++++++++++++++++++------
gcc15-libstdc++-docs.patch | 4 +--
gcc15-pr118438.patch | 55 -----------------------------------
noautorebuild | 1 -
sources | 2 +-
6 files changed, 54 insertions(+), 68 deletions(-)
delete mode 100644 gcc15-pr118438.patch
delete mode 100644 noautorebuild
diff --git a/.gitignore b/.gitignore
index b6a5b4a..fdfb0cc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@
/gcc-15.0.0-20250111.tar.xz
/gcc-15.0.1-20250113.tar.xz
/gcc-15.0.1-20250114.tar.xz
+/gcc-15.0.1-20250125.tar.xz
diff --git a/gcc.spec b/gcc.spec
index 2f504cb..f9debcb 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,5 +1,5 @@
-%global DATE 20250114
-%global gitrev 6adb681d9cf55f12e8a232c1e9a009e5ca5fdde5
+%global DATE 20250125
+%global gitrev 971fa9cf8655e9ba26529620b624bac77d9a584b
%global gcc_version 15.0.1
%global gcc_major 15
# Note, gcc_release must be integer, if you want to add suffixes to
@@ -143,7 +143,7 @@
Summary: Various compilers (C, C++, Objective-C, ...)
Name: gcc
Version: %{gcc_version}
-Release: %{gcc_release}.3%{?dist}.1
+Release: %{gcc_release}.4%{?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
@@ -300,8 +300,7 @@ Patch10: gcc15-rh1574936.patch
Patch11: gcc15-d-shared-libphobos.patch
Patch12: gcc15-pr118206.patch
Patch13: gcc15-d-deps.patch
-Patch14: gcc15-pr118438.patch
-Patch15: gcc15-pr117231.patch
+Patch14: gcc15-pr117231.patch
Patch50: isl-rh2155127.patch
@@ -918,8 +917,7 @@ so that there cannot be any synchronization problems.
%patch -P11 -p0 -b .d-shared-libphobos~
%patch -P12 -p0 -b .pr118206~
%patch -P13 -p0 -b .d-deps~
-%patch -P14 -p0 -b .pr118438~
-%patch -P15 -p0 -b .pr117231~
+%patch -P14 -p0 -b .pr117231~
%patch -P50 -p0 -b .rh2155127~
touch -r isl-0.24/m4/ax_prog_cxx_for_build.m4 isl-0.24/m4/ax_prog_cc_for_build.m4
@@ -3679,8 +3677,51 @@ end
%endif
%changelog
-* Thu Jan 16 2025 Fedora Release Engineering - 15.0.1-0.3.1
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
+* Sat Jan 25 2025 Jakub Jelinek 15.0.1-0.4
+- update from trunk
+ - PRs c/118639, c++/105440, c++/107522, c++/107741, c++/115769, c++/116417,
+ c++/116568, c++/116756, c++/117153, c++/117397, c++/117602,
+ c++/117775, c++/117827, c++/118047, c++/118049, c++/118101,
+ c++/118124, c++/118139, c++/118147, c++/118199, c++/118214,
+ c++/118225, c++/118245, c++/118255, c++/118278, c++/118355,
+ c++/118390, c++/118396, c++/118454, c++/118486, c++/118509,
+ c++/118513, c++/118523, c++/118525, c++/118528, c++/118532,
+ c++/118534, c++/118582, c++/118590, c++/118604, d/114434, d/115249,
+ d/116373, d/117115, d/118438, d/118448, d/118449, d/118584,
+ fortran/71884, fortran/81978, fortran/96087, fortran/107122,
+ fortran/118321, fortran/118359, fortran/118441, fortran/118613,
+ gcov-profile/116743, ipa/116068, ipa/118400, jit/117886,
+ libfortran/118406, libfortran/118536, libfortran/118571,
+ libstdc++/99995, libstdc++/100249, libstdc++/109849, libstdc++/118158,
+ libstdc++/118185, lto/118238, middle-end/112779, middle-end/113904,
+ middle-end/114596, middle-end/114877, middle-end/118140,
+ middle-end/118273, middle-end/118472, modula2/118010, modula2/118589,
+ objc++/118586, rtl-optimization/109592, rtl-optimization/113994,
+ rtl-optimization/117868, rtl-optimization/118067,
+ rtl-optimization/118562, rtl-optimization/118591,
+ rtl-optimization/1180167, sarif-replay/117670, target/80813,
+ target/110901, target/113257, target/113560, target/114442,
+ target/116256, target/116308, target/116593, target/117079,
+ target/117726, target/118154, target/118170, target/118182,
+ target/118270, target/118329, target/118357, target/118489,
+ target/118497, target/118501, target/118510, target/118511,
+ target/118512, target/118531, target/118560, target/118609,
+ testsuite/116448, testsuite/117958, testsuite/118451,
+ tree-optimization/92539, tree-optimization/102705,
+ tree-optimization/115494, tree-optimization/115777,
+ tree-optimization/115895, tree-optimization/116010,
+ tree-optimization/117668, tree-optimization/117875,
+ tree-optimization/118012, tree-optimization/118077,
+ tree-optimization/118224, tree-optimization/118348,
+ tree-optimization/118360, tree-optimization/118384,
+ tree-optimization/118430, tree-optimization/118456,
+ tree-optimization/118483, tree-optimization/118487,
+ tree-optimization/118514, tree-optimization/118522,
+ tree-optimization/118529, tree-optimization/118552,
+ tree-optimization/118558, tree-optimization/118569,
+ tree-optimization/118572, tree-optimization/118605,
+ tree-optimization/118628, tree-optimization/118634
+- fix libstdc++.modules.json content after relocation
* Tue Jan 14 2025 Jakub Jelinek 15.0.1-0.3
- temporary fix for coroutine range for handling (PR c++/117231)
diff --git a/gcc15-libstdc++-docs.patch b/gcc15-libstdc++-docs.patch
index fc94419..829bb97 100644
--- a/gcc15-libstdc++-docs.patch
+++ b/gcc15-libstdc++-docs.patch
@@ -4,7 +4,7 @@
FSF
-+ Release 15.0.0
++ Release 15.0.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 15.0.0 release,
++ for the 15.0.1 release,
+ online
for each GCC release
and
diff --git a/gcc15-pr118438.patch b/gcc15-pr118438.patch
deleted file mode 100644
index f428963..0000000
--- a/gcc15-pr118438.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-2025-01-13 Jakub Jelinek
-
- PR d/118438
- * libdruntime/core/sys/posix/sys/socket.d: Cherry-pick from upstream.
-
---- libphobos/libdruntime/core/sys/posix/sys/socket.d.jj
-+++ libphobos/libdruntime/core/sys/posix/sys/socket.d
-@@ -317,6 +318,7 @@ version (linux)
- SO_RCVLOWAT = 0x1004,
- SO_RCVTIMEO = 0x1006,
- SO_REUSEADDR = 0x0004,
-+ SO_REUSEPORT = 0x0200,
- SO_SNDBUF = 0x1001,
- SO_SNDLOWAT = 0x1003,
- SO_SNDTIMEO = 0x1005,
-@@ -351,6 +353,7 @@ version (linux)
- SO_RCVLOWAT = 0x1004,
- SO_RCVTIMEO = 0x1006,
- SO_REUSEADDR = 0x0004,
-+ SO_REUSEPORT = 0x0200,
- SO_SNDBUF = 0x1001,
- SO_SNDLOWAT = 0x1003,
- SO_SNDTIMEO = 0x1005,
-@@ -385,6 +388,7 @@ version (linux)
- SO_RCVLOWAT = 16,
- SO_RCVTIMEO = 18,
- SO_REUSEADDR = 2,
-+ SO_REUSEPORT = 15,
- SO_SNDBUF = 7,
- SO_SNDLOWAT = 17,
- SO_SNDTIMEO = 19,
-@@ -454,6 +458,7 @@ version (linux)
- SO_RCVLOWAT = 18,
- SO_RCVTIMEO = 20,
- SO_REUSEADDR = 2,
-+ SO_REUSEPORT = 15,
- SO_SNDBUF = 7,
- SO_SNDLOWAT = 19,
- SO_SNDTIMEO = 21,
-@@ -522,6 +528,7 @@ version (linux)
- SO_RCVLOWAT = 18,
- SO_RCVTIMEO = 20,
- SO_REUSEADDR = 2,
-+ SO_REUSEPORT = 15,
- SO_SNDBUF = 7,
- SO_SNDLOWAT = 19,
- SO_SNDTIMEO = 21,
-@@ -556,6 +563,7 @@ version (linux)
- SO_RCVLOWAT = 18,
- SO_RCVTIMEO = 20,
- SO_REUSEADDR = 2,
-+ SO_REUSEPORT = 15,
- SO_SNDBUF = 7,
- SO_SNDLOWAT = 19,
- SO_SNDTIMEO = 21,
diff --git a/noautorebuild b/noautorebuild
deleted file mode 100644
index a8dc544..0000000
--- a/noautorebuild
+++ /dev/null
@@ -1 +0,0 @@
-GCC has been already rebuilt and will be rebuilt again very soon, so the mass rebuild is waste of resources for it.
diff --git a/sources b/sources
index 9794578..6791fe6 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-SHA512 (gcc-15.0.1-20250114.tar.xz) = 54d1749fb3b57c0e96bf9887b64c60d8e61cd634ab460ec03b7e909ea4a54f898988984d2dff7cdefd093ee9c8a235b70f20d2f005cdf14313077b28ddcf6759
+SHA512 (gcc-15.0.1-20250125.tar.xz) = 5ee2c0a48d740a90ad102b4d4f4e5b51929e57816099d3eb41ab26bc6991fa144b7f1fca81584bad5b7b819687b2bd3c9b51472ba8cb0a2c03d585653458a28e
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
SHA512 (newlib-cygwin-2e4db338ac125579d555aeee516e48588a628a16.tar.xz) = 839bb0c45b5023a83e1a5bf8773050af46bd075754502fc49a62ab860144c9a6bdc0a7d52e6c7ded87ba13ce58192755dd3f83333bc7c61ffb184fef4142a808
SHA512 (nvptx-tools-87ce9dc5999e5fca2e1d3478a30888d9864c9804.tar.xz) = 941e763af8601b89f0e4ec48a2d68ae0a8e70ee1e6ba6859394b021ad7bd7d143cc529f3c35c08d7f84e5554980ddcc97cf05b6c4755c2bc36c91161b79e8cea