commit: 7a1528e34ef7a5b1f431fbd6b918df8735e73ea8 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Fri Apr 18 21:15:59 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Fri Apr 18 21:17:01 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7a1528e3
sys-devel/gcc: backport a late patch to 15 RC1 I thought this had made it in, but it didn't. Signed-off-by: Sam James <sam <AT> gentoo.org> .../files/gcc-15.0.1_pre20250418-PR119858.patch | 38 +++++++++++++++ sys-devel/gcc/gcc-15.0.1_pre20250418-r1.ebuild | 57 ++++++++++++++++++++++ 2 files changed, 95 insertions(+) diff --git a/sys-devel/gcc/files/gcc-15.0.1_pre20250418-PR119858.patch b/sys-devel/gcc/files/gcc-15.0.1_pre20250418-PR119858.patch new file mode 100644 index 000000000000..f0b40a288dbf --- /dev/null +++ b/sys-devel/gcc/files/gcc-15.0.1_pre20250418-PR119858.patch @@ -0,0 +1,38 @@ +https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=d88b917325546cee24a544dc05cbfbef0febfe25 + +From d88b917325546cee24a544dc05cbfbef0febfe25 Mon Sep 17 00:00:00 2001 +From: Richard Biener <[email protected]> +Date: Fri, 18 Apr 2025 14:52:41 +0200 +Subject: [PATCH] tree-optimization/119858 - type mismatch with POINTER_PLUS + +The recent PFA early-break vectorization fix left us with a POINTER_PLUS +and non-sizetype offset. + + PR tree-optimization/119858 + * tree-vect-loop.cc (vectorizable_live_operation): Convert + pointer offset to sizetype. +--- + gcc/tree-vect-loop.cc | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc +index 958b829fa8d1..2d35fa128864 100644 +--- a/gcc/tree-vect-loop.cc ++++ b/gcc/tree-vect-loop.cc +@@ -11657,8 +11657,12 @@ vectorizable_live_operation (vec_info *vinfo, stmt_vec_info stmt_info, + break_lhs_phi); + + if (POINTER_TYPE_P (TREE_TYPE (new_tree))) +- tmp2 = gimple_build (&iv_stmts, POINTER_PLUS_EXPR, +- TREE_TYPE (new_tree), new_tree, tmp2); ++ { ++ tmp2 = gimple_convert (&iv_stmts, sizetype, tmp2); ++ tmp2 = gimple_build (&iv_stmts, POINTER_PLUS_EXPR, ++ TREE_TYPE (new_tree), new_tree, ++ tmp2); ++ } + else + { + tmp2 = gimple_convert (&iv_stmts, TREE_TYPE (new_tree), +-- +2.43.5 diff --git a/sys-devel/gcc/gcc-15.0.1_pre20250418-r1.ebuild b/sys-devel/gcc/gcc-15.0.1_pre20250418-r1.ebuild new file mode 100644 index 000000000000..06d32297706e --- /dev/null +++ b/sys-devel/gcc/gcc-15.0.1_pre20250418-r1.ebuild @@ -0,0 +1,57 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_PATCH_DEV="sam" +TOOLCHAIN_HAS_TESTS=1 +TOOLCHAIN_GCC_RC=1 +PATCH_GCC_VER="15.0.0" +PATCH_VER="55" +MUSL_VER="2" +MUSL_GCC_VER="15.0.0" +PYTHON_COMPAT=( python3_{10..13} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${P}-PR119858.patch + eapply_user +}
