commit:     ccf0a4e094c6cb18fdb7b4eb3dfb4692d2197ba6
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Oct  3 19:02:53 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Oct  3 19:03:10 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ccf0a4e0

sys-devel/gcc: backport USE=pgo bootstrap fix for 14.0.0_pre20231001

Closes: https://bugs.gentoo.org/914998
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../gcc-14.0.0_pre20231001-pgo-bootstrap.patch     | 45 ++++++++++++++++++++++
 sys-devel/gcc/gcc-14.0.0_pre20231001.ebuild        |  1 +
 2 files changed, 46 insertions(+)

diff --git a/sys-devel/gcc/files/gcc-14.0.0_pre20231001-pgo-bootstrap.patch 
b/sys-devel/gcc/files/gcc-14.0.0_pre20231001-pgo-bootstrap.patch
new file mode 100644
index 000000000000..31ad7d855268
--- /dev/null
+++ b/sys-devel/gcc/files/gcc-14.0.0_pre20231001-pgo-bootstrap.patch
@@ -0,0 +1,45 @@
+https://bugs.gentoo.org/914998
+https://gcc.gnu.org/PR111642
+https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=e465e5e4a969334f64cf0d6611de5273d73ea732
+
+From e465e5e4a969334f64cf0d6611de5273d73ea732 Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <[email protected]>
+Date: Mon, 2 Oct 2023 07:20:45 +0100
+Subject: [PATCH] Fix profiledbootstrap poly_int fallout [PR111642]
+
+rtl-tests.cc and simplify-rtx.cc used partial specialisation
+to try to restrict the NUM_POLY_INT_COEFFS>1 tests without
+resorting to preprocessor tests.  That now triggers an error
+in some configurations, since the NUM_POLY_INT_COEFFS>1 tests
+used the global poly_int64, whose definition does not depend
+on the template parameter.
+
+This patch uses local types that do depend on the template parameter.
+
+gcc/
+       PR bootstrap/111642
+       * rtl-tests.cc (const_poly_int_tests<N>::run): Use a local
+       poly_int64 typedef.
+       * simplify-rtx.cc (simplify_const_poly_int_tests<N>::run): Likewise.
+--- a/gcc/rtl-tests.cc
++++ b/gcc/rtl-tests.cc
+@@ -246,6 +246,7 @@ template<unsigned int N>
+ void
+ const_poly_int_tests<N>::run ()
+ {
++  using poly_int64 = poly_int<N, HOST_WIDE_INT>;
+   rtx x1 = gen_int_mode (poly_int64 (1, 1), QImode);
+   rtx x255 = gen_int_mode (poly_int64 (1, 255), QImode);
+ 
+--- a/gcc/simplify-rtx.cc
++++ b/gcc/simplify-rtx.cc
+@@ -8689,6 +8689,7 @@ template<unsigned int N>
+ void
+ simplify_const_poly_int_tests<N>::run ()
+ {
++  using poly_int64 = poly_int<N, HOST_WIDE_INT>;
+   rtx x1 = gen_int_mode (poly_int64 (1, 1), QImode);
+   rtx x2 = gen_int_mode (poly_int64 (-80, 127), QImode);
+   rtx x3 = gen_int_mode (poly_int64 (-79, -128), QImode);
+-- 
+2.39.3

diff --git a/sys-devel/gcc/gcc-14.0.0_pre20231001.ebuild 
b/sys-devel/gcc/gcc-14.0.0_pre20231001.ebuild
index 02c5c891469e..b7a4582ecb18 100644
--- a/sys-devel/gcc/gcc-14.0.0_pre20231001.ebuild
+++ b/sys-devel/gcc/gcc-14.0.0_pre20231001.ebuild
@@ -61,4 +61,5 @@ src_prepare() {
        toolchain_src_prepare
 
        eapply_user
+       eapply "${FILESDIR}"/${P}-pgo-bootstrap.patch
 }

Reply via email to