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