commit:     4118d44f4498c8501798d6982bc44e6707af63b3
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 29 11:57:23 2024 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Sun Dec 29 11:57:23 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=4118d44f

sys-devel/gcc-14.2.1_p20241221: version bump

Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

 sys-devel/gcc/Manifest                             |   3 +
 ...MVE-intrinsics-Fix-support-for-predicate-.patch | 144 ++++++++++++++++++++
 sys-devel/gcc/gcc-14.2.1_p20241221.ebuild          | 145 +++++++++++++++++++++
 3 files changed, 292 insertions(+)

diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest
index b5ee116363..845e01cb0f 100644
--- a/sys-devel/gcc/Manifest
+++ b/sys-devel/gcc/Manifest
@@ -2,6 +2,7 @@ DIST gcc-13.2.0-musl-patches-2.tar.xz 5292 BLAKE2B 
c057d6574d03c05854edaa9f3fd40
 DIST gcc-13.2.0-patches-16.tar.xz 44792 BLAKE2B 
0b6b584d68e69685638695596b780249ca0119ad362747a82d886fd10f77ceb05d02e033e906a090c67f44b1977f40df6a95206d81a32dd15e2f5413c6c92496
 SHA512 
324d9e63d16c35d55edde20de049162c01b0d487b4548d06c49f0da04a761ec255bc5e020cc2e7f60d12f5d129768afdcf7c86a59126f71f388ab375c34be6de
 DIST gcc-13.3.0-arm64-darwin.patch 570896 BLAKE2B 
6fcecb4adbf607f06a82b926c4b198a094a136210875320d784f49ac88e940d9b3c110f5b4e43df6751e40cdd90b82d00d461178c520b8692e1be427804b4cad
 SHA512 
6165b6201f4ef94ee254ea40410911f5e5e1a05d80d4da2fce90b3db94000c3d5c5a28c9a4ad1a43387faae68d94fbef8e4d24e1ff049b9c0014c00f6f50757b
 DIST gcc-13.3.0.tar.xz 87909952 BLAKE2B 
0f3728b026bd8aab0e469dda54facf157a4b753d3405a74b0be6105a6e3a493d26df4007d90ae4e05d86277d41873312638f9589d1757cee80ca84de7f2099e3
 SHA512 
ed5f2f4c6ed2c796fcf2c93707159e9dbd3ddb1ba063d549804dd68cdabbb6d550985ae1c8465ae9a336cfe29274a6eb0f42e21924360574ebd8e5d5c7c9a801
+DIST gcc-14-20241221.tar.xz 88198252 BLAKE2B 
7491c2e1c8885e201859143bdf5cae95af4c0db77709ec7d761ad535df30042f5deb8488ba7c508de3673e4b0f2af1de8d17476f39cd47b745ddccec6a9e4470
 SHA512 
91fe1e1d1f8e8fad64930a2eadf942a542bd42f841fceb49f475bccac00f04692b8cd38821ea9ee05f78b5c51001d8bd39df5f71f3a3d89aab8980019cea9be8
 DIST gcc-14.1.0-arm64-darwin.patch 200436 BLAKE2B 
ba92f8a1586f01085775c2a0a724f597a3e51468ee906169f41b46e58f2c615173120e38b4fc8e800d67cbdd97375564e009d3d1bd810293897466c817e03dcf
 SHA512 
8ea5c3f80fa406294a95fa86264998c9090a4b7e734563e336dd670c0f8da0cb6bee8f80296905c0d7d6f17d0b895147d703951e94ba71466423d959404f5a0e
 DIST gcc-14.1.0-macos-SDK-availability.patch 9044 BLAKE2B 
783340d55590337b156d3fd866027a931bafc3bd7d6a14c7d7940e13ff6fffebe351dae3a6d98c0ba7c7c5b4f226179bb24a8714f5ca334170ab353e0c2f4be8
 SHA512 
6db397718d20eca0b4caf7de45358379d05e83bfc4cb4d800aaf82dd8b7994af5dbfd9ff56e3480722dfec78ad381457034552358fc1e8eeb0a5a3e3ad0e4cc1
 DIST gcc-14.1.0-musl-patches-1.tar.xz 3600 BLAKE2B 
4cd920b7ca1f122cae806707564d8e45bfd48e78c88788a12a301f6068b5a5f335d8885e67479ac536c66aeaa81f2ecb7240ae56e9fc821a7246ab66b453711f
 SHA512 
61c48d90a55dfc2129d96aee69d939d6a89f6407f69f7bd12c1a619f28989f471fd219d731958f8e62b0fd650c32300f0ad8dc06d5df23d9fc8c1a77fe210c25
@@ -9,5 +10,7 @@ DIST gcc-14.1.0-patches-3.tar.xz 11868 BLAKE2B 
06d079766bfbaddd066cd70f2d3f5e9ef
 DIST gcc-14.1.0-patches-4.tar.xz 11620 BLAKE2B 
c819fbdea1f3bf10c8d4214d4c33cf28c1410171d2833b6f8c1225eeefe749ddb815067b3fdb750e5839761aee8d39ffc51ffb492f88e630076818a61b18362b
 SHA512 
0d6e1b04591607dfc8022124b186ce499467c32db7667ee1a640fe2e07706597edc0e4ad5c7ebcb75c8f5fc6e45e9b9ef715402c71ff9ab21fe380007fe5d84f
 DIST gcc-14.1.0.tar.xz 92265736 BLAKE2B 
7efd6574b8bca081de6e31480ec0565c6d7fb773383e8e1fdcc17e35bba2bf44b3f4f995cdbcccd001689926e96a6563ef3d099902fe3b37ab09dcf553ab0596
 SHA512 
e9e224f2b26646fcf038d28dfa08b94c623bc57941f99894a321d01c600f7c68aff6b8837fd25e73e540de1f8de5606e98694a62cdcdfb525ce768b3ef6879ea
 DIST gcc-14.2.0-arm64-darwin.patch 203103 BLAKE2B 
a040283f1ffdd0e912767b64515c18d194eb9cf2f6c55b93e7a9fab8436920b4461539ebf2482e26119001ea6f42f7294670351d853b42ca333f870365e9cc9b
 SHA512 
c96d92289492d76f6e4e6376148c53d7e962fd15d03b1ecfe16f8036a0ff0c1e9277bf00566ecfe0d54765a679ce7d7470f6e696f8e3fe7b419000b924260fcf
+DIST gcc-14.2.0-patches-7.tar.xz 14244 BLAKE2B 
11236e91e1fe83fec8ffaa40ec0cdd4b52a00a951e9aa9a7a0a932b234b8f1a9603333a7ccf55859f4ef53dd4d8ad1fd5c1d2514b6e45fce5b86bb58622a0ecc
 SHA512 
5a4d86d943e31fa068b5a784c0132bd83c23243dcb3cf972557a42e004469a415e1b3185f31b1bb36f916594d475f266a2fda031a414e4a15e0bbfe471269eee
 DIST gcc-14.2.0.tar.xz 92306460 BLAKE2B 
87baf2a06dfa75d8fb6cd62c747ef1f57d3b9bbbe33a360d9ed3de4b4dbeaa8d920504c67e409bd9863414202c14fd854b46108e984418171205119216d03d3b
 SHA512 
932bdef0cda94bacedf452ab17f103c0cb511ff2cec55e9112fc0328cbf1d803b42595728ea7b200e0a057c03e85626f937012e49a7515bc5dd256b2bf4bc396
+DIST gcc-14.2.1-arm64-darwin.patch 199458 BLAKE2B 
7ba878a19c1451e84f0af531b58177bf8c5358211ab704b8e58ff85bd453634b86f743dcb7bc9c89960fede115c9aa60209489b9fab8885e081e0cae2507359f
 SHA512 
af8f3a7ce7776d004336686fd28080c6e41ef73aaae6e6c49db3495a99509162f9e16246d18034b0d5ec03bf109e7bf14b075564b1836d1edbe9034b202152d9
 DIST gcc-validate-failures-a447cd6dee206facb66720bdacf0c765a8b09f33.py 27537 
BLAKE2B 
96c7474de0bc50ab890a91551412398c979396c43aa237a4b6d8baa98ce7fda2cc9f5a755a03fd9d055d885ee2fb40ba29644a0649c24398361ce75a20fae634
 SHA512 
409434953351cf1f2287f1e4a4fbde5b28a27add35ddd284080acec71b33cb4ec5e1c07f41a79fac060bd6f1eedd198812495141923e410ded907429fe515f83

diff --git 
a/sys-devel/gcc/files/gcc-14.2.1_p20241221-arm-Revert-arm-MVE-intrinsics-Fix-support-for-predicate-.patch
 
b/sys-devel/gcc/files/gcc-14.2.1_p20241221-arm-Revert-arm-MVE-intrinsics-Fix-support-for-predicate-.patch
new file mode 100644
index 0000000000..026cf14cb8
--- /dev/null
+++ 
b/sys-devel/gcc/files/gcc-14.2.1_p20241221-arm-Revert-arm-MVE-intrinsics-Fix-support-for-predicate-.patch
@@ -0,0 +1,144 @@
+https://gcc.gnu.org/PR118176
+
+From ecd031a9470257324484c66b51c6baff943e01ab Mon Sep 17 00:00:00 2001
+Message-ID: 
<ecd031a9470257324484c66b51c6baff943e01ab.1734954594.git....@gentoo.org>
+From: Christophe Lyon <[email protected]>
+Date: Mon, 23 Dec 2024 08:11:34 +0000
+Subject: [PATCH] Revert "arm: [MVE intrinsics] Fix support for predicate
+ constants [PR target/114801]"
+
+This reverts commit 0631c5770e8162dbe67c73dee0327313c19822c2.
+---
+ gcc/config/arm/arm-mve-builtins.cc            | 32 +--------------
+ .../gcc.target/arm/mve/pr108443-run.c         |  2 +-
+ gcc/testsuite/gcc.target/arm/mve/pr108443.c   |  4 +-
+ gcc/testsuite/gcc.target/arm/mve/pr114801.c   | 39 -------------------
+ 4 files changed, 4 insertions(+), 73 deletions(-)
+ delete mode 100644 gcc/testsuite/gcc.target/arm/mve/pr114801.c
+
+diff --git a/gcc/config/arm/arm-mve-builtins.cc 
b/gcc/config/arm/arm-mve-builtins.cc
+index ec856f7d6168..e1826ae40527 100644
+--- a/gcc/config/arm/arm-mve-builtins.cc
++++ b/gcc/config/arm/arm-mve-builtins.cc
+@@ -2107,37 +2107,7 @@ function_expander::add_input_operand (insn_code icode, 
rtx x)
+       mode = GET_MODE (x);
+     }
+   else if (VALID_MVE_PRED_MODE (mode))
+-    {
+-      if (CONST_INT_P (x))
+-      {
+-        if (mode == V8BImode || mode == V4BImode)
+-          {
+-            /* In V8BI or V4BI each element has 2 or 4 bits, if those bits
+-               aren't all the same, gen_lowpart might ICE.  Canonicalize all
+-               the 2 or 4 bits to all ones if any of them is non-zero.  V8BI
+-               and V4BI multi-bit masks are interpreted byte-by-byte at
+-               instruction level, but such constants should describe lanes,
+-               rather than bytes.  See the section on MVE intrinsics in the
+-               Arm ACLE specification.  */
+-            unsigned HOST_WIDE_INT xi = UINTVAL (x);
+-            xi |= ((xi & 0x5555) << 1) | ((xi & 0xaaaa) >> 1);
+-            if (mode == V4BImode)
+-              xi |= ((xi & 0x3333) << 2) | ((xi & 0xcccc) >> 2);
+-            if (xi != UINTVAL (x))
+-              warning_at (location, 0, "constant predicate argument %d"
+-                          " (%wx) does not map to %d lane numbers,"
+-                          " converted to %wx",
+-                          opno, UINTVAL (x) & 0xffff,
+-                          mode == V8BImode ? 8 : 4,
+-                          xi & 0xffff);
+-
+-            x = gen_int_mode (xi, HImode);
+-          }
+-        x = gen_lowpart (mode, x);
+-      }
+-      else
+-      x = force_lowpart_subreg (mode, x, GET_MODE (x));
+-    }
++    x = gen_lowpart (mode, x);
+ 
+   m_ops.safe_grow (m_ops.length () + 1, true);
+   create_input_operand (&m_ops.last (), x, mode);
+diff --git a/gcc/testsuite/gcc.target/arm/mve/pr108443-run.c 
b/gcc/testsuite/gcc.target/arm/mve/pr108443-run.c
+index b894f019b8bb..cb4b45bd3056 100644
+--- a/gcc/testsuite/gcc.target/arm/mve/pr108443-run.c
++++ b/gcc/testsuite/gcc.target/arm/mve/pr108443-run.c
+@@ -16,7 +16,7 @@ __attribute__ ((noipa)) partial_write (uint32_t *a, 
uint32x4_t v, unsigned short
+ 
+ int main (void)
+ {
+-  unsigned short p = 0x00FF;
++  unsigned short p = 0x00CC;
+   uint32_t a[] = {0, 0, 0, 0};
+   uint32_t b[] = {0, 0, 0, 0};
+   uint32x4_t v = vdupq_n_u32 (0xFFFFFFFFU);
+diff --git a/gcc/testsuite/gcc.target/arm/mve/pr108443.c 
b/gcc/testsuite/gcc.target/arm/mve/pr108443.c
+index 0c0e2dd6eb8f..c5fbfa4a1bb7 100644
+--- a/gcc/testsuite/gcc.target/arm/mve/pr108443.c
++++ b/gcc/testsuite/gcc.target/arm/mve/pr108443.c
+@@ -7,8 +7,8 @@
+ void
+ __attribute__ ((noipa)) partial_write_cst (uint32_t *a, uint32x4_t v)
+ {
+-  vstrwq_p_u32 (a, v, 0x00FF);
++  vstrwq_p_u32 (a, v, 0x00CC);
+ }
+ 
+-/* { dg-final { scan-assembler {mov\tr[0-9]+, #255} } } */
++/* { dg-final { scan-assembler {mov\tr[0-9]+, #204} } } */
+ 
+diff --git a/gcc/testsuite/gcc.target/arm/mve/pr114801.c 
b/gcc/testsuite/gcc.target/arm/mve/pr114801.c
+deleted file mode 100644
+index ab3130fd4ce8..000000000000
+--- a/gcc/testsuite/gcc.target/arm/mve/pr114801.c
++++ /dev/null
+@@ -1,39 +0,0 @@
+-/* { dg-do compile } */
+-/* { dg-require-effective-target arm_v8_1m_mve_ok } */
+-/* { dg-options "-O2" } */
+-/* { dg-add-options arm_v8_1m_mve } */
+-/* { dg-final { check-function-bodies "**" "" "" } } */
+-
+-#include <arm_mve.h>
+-
+-/*
+-** test_32:
+-**...
+-**    mov     r[0-9]+, #65295 @ movhi
+-**...
+-*/
+-uint32x4_t test_32() {
+-  /* V4BI predicate converted to 0xff0f.  */
+-  return vdupq_m_n_u32(vdupq_n_u32(0xffffffff), 0, 0x4f02); /* { dg-warning 
{constant predicate argument 3 \(0x4f02\) does not map to 4 lane numbers, 
converted to 0xff0f} } */
+-}
+-
+-/*
+-** test_16:
+-**...
+-**    mov     r[0-9]+, #12339 @ movhi
+-**...
+-*/
+-uint16x8_t test_16() {
+-  /* V8BI predicate converted to 0x3033.  */
+-  return vdupq_m_n_u16(vdupq_n_u16(0xffff), 0, 0x3021); /* { dg-warning 
{constant predicate argument 3 \(0x3021\) does not map to 8 lane numbers, 
converted to 0x3033} } */
+-}
+-
+-/*
+-** test_8:
+-**...
+-**    mov     r[0-9]+, #23055 @ movhi
+-**...
+-*/
+-uint8x16_t test_8() {
+-  return vdupq_m_n_u8(vdupq_n_u8(0xff), 0, 0x5a0f);
+-}
+
+base-commit: e883a7082fecfd85694b275bec4a2e428ac9a081
+prerequisite-patch-id: 4000f228fd3953eb9877fab7b9493cd86f6bc771
+prerequisite-patch-id: d61e09af01bb7358c1df6abf5d2c4b7849ab4676
+prerequisite-patch-id: 54a4cfb376547141937d7e321d7b4554c1e3afe7
+prerequisite-patch-id: 3117f4e58bd5c0a1aca48af82106bb7f779842fa
+prerequisite-patch-id: a470cf090a6867789c0722d012786c6066d3e706
+-- 
+2.47.1
+

diff --git a/sys-devel/gcc/gcc-14.2.1_p20241221.ebuild 
b/sys-devel/gcc/gcc-14.2.1_p20241221.ebuild
new file mode 100644
index 0000000000..e99242970c
--- /dev/null
+++ b/sys-devel/gcc/gcc-14.2.1_p20241221.ebuild
@@ -0,0 +1,145 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+TOOLCHAIN_PATCH_DEV="sam"
+TOOLCHAIN_HAS_TESTS=1
+PATCH_GCC_VER="14.2.0"
+PATCH_VER="7"
+MUSL_VER="1"
+MUSL_GCC_VER="14.1.0"
+PYTHON_COMPAT=( python3_{10..12} )
+
+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=releases/gcc-$(ver_cut 1)
+elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
+       # m68k doesnt build (ICE, bug 932733)
+       KEYWORDS="~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos 
~x64-solaris"
+       :;
+fi
+
+# use alternate source for Apple M1 (also works for x86_64)
+SRC_URI+=" elibc_Darwin? ( 
https://dev.gentoo.org/~grobian/distfiles/gcc-14.2.1-arm64-darwin.patch )"
+IUSE+=" system-bootstrap"
+
+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="!prefix-guest? ( elibc_glibc? ( sys-libs/glibc[cet(-)?] ) )"
+       DEPEND="${RDEPEND}"
+fi
+
+src_prepare() {
+       # apply big arm64-darwin patch first thing
+       use elibc_Darwin && eapply "${DISTDIR}"/${PN}-14.2.1-arm64-darwin.patch
+
+       # run as with - on pipe (for Clang 16)
+       eapply "${FILESDIR}"/${PN}-14.2.0-darwin-as-dash-pipe.patch
+
+       # make sure 64-bits native targets don't screw up the linker paths
+       eapply "${FILESDIR}"/gcc-12-no-libs-for-startfile.patch
+
+       local p upstreamed_patches=(
+               # add them here
+       )
+       for p in "${upstreamed_patches[@]}"; do
+               rm -v "${WORKDIR}/patch/${p}" || die
+       done
+
+       toolchain_src_prepare
+
+       # make it have correct install_names on Darwin
+       eapply -p1 "${FILESDIR}"/4.3.3/darwin-libgcc_s-installname.patch
+
+       if [[ ${CHOST} == powerpc*-darwin* ]] ; then
+               # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44107
+               sed -i -e 's|^ifeq (/usr/lib,|ifneq (/usr/lib,|' \
+                       libgcc/config/t-slibgcc-darwin || die
+       fi
+
+       if [[ ${CHOST} == *-solaris* ]] ; then
+               # madvise is not available in the compatibility mode GCC uses,
+               # posix_madvise however, is
+               sed -i -e 's/madvise/posix_madvise/' gcc/cp/module.cc || die
+       fi
+
+       if [[ ${CHOST} == *-darwin* ]] ; then
+               use system-bootstrap && eapply 
"${FILESDIR}"/${PN}-13-darwin14-bootstrap.patch
+
+               # our ld64 is a slight bit different, so tweak expression to not
+               # get confused and break the build
+               sed -i -e "s/EGREP 'ld64|dyld'/& | head -n1/" \
+                       gcc/configure{.ac,} || die
+
+               # rip out specific macos version min
+               sed -i -e 's/-mmacosx-version-min=11.0//' \
+                       libgcc/config/aarch64/t-darwin \
+                       libgcc/config/aarch64/t-heap-trampoline \
+                       || die
+       fi
+
+       eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
+       eapply 
"${FILESDIR}"/gcc-14.2.1_p20241221-arm-Revert-arm-MVE-intrinsics-Fix-support-for-predicate-.patch
+       eapply_user
+}
+
+src_configure() {
+       local myconf=()
+       case ${CTARGET}:" ${USE} " in
+               powerpc*-darwin*)
+                       # bug #381179
+                       filter-flags "-mcpu=*" "-mtune=*"
+                       # bug #657522
+                       # A bug in configure checks whether -no-pie works, but 
the
+                       # compiler doesn't pass -no-pie onto the linker if 
-fno-PIE
+                       # isn't passed, so the configure check always finds 
-no-pie
+                       # is accepted.  (Likewise, when -fno-PIE is passed, the
+                       # compiler passes -no_pie onto the linker.)
+                       # Since our linker doesn't grok this, avoid above 
checks to
+                       # be run
+                       # NOTE: later ld64 does grok -no_pie, not -no-pie (as 
checked)
+                       export gcc_cv_c_no_fpie=no
+                       export gcc_cv_no_pie=no
+               ;;
+               *-darwin20)
+                       # use sysroot with the linker, #756160
+                       export gcc_cv_ld_sysroot=yes
+                       ;;
+               *-solaris*)
+                       # todo: some magic for native vs. GNU linking?
+                       myconf+=( --with-gnu-ld --with-gnu-as 
--enable-largefile )
+               ;;
+               i[34567]86-*-linux*:*" prefix "*)
+                       # to allow the linux-x86-on-amd64.patch become useful, 
we need
+                       # to enable multilib, even if there is just one 
multilib option.
+                       myconf+=( --enable-multilib )
+                       if [[ ${CBUILD:-${CHOST}} == "${CHOST}" ]]; then
+                               # we might be on x86_64-linux, but don't do 
cross-compile, so
+                               # tell the host-compiler to really create 
32bits (for stage1)
+                               # (real x86-linux-gcc also accept -m32).
+                               append-flags -m32
+                       fi
+               ;;
+       esac
+
+       # Since GCC 4.1.2 some non-posix (?) /bin/sh compatible code is used, at
+       # least on Solaris, and AIX /bin/sh is way too slow,
+       # so force it to use $BASH (that portage uses) - it can't be EPREFIX
+       # in case that doesn't exist yet
+       export CONFIG_SHELL="${CONFIG_SHELL:-${BASH}}"
+       toolchain_src_configure "${myconf[@]}"
+}

Reply via email to