diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest index dfeb828758ddc..3e4747788d804 100644 --- a/sys-devel/gcc/Manifest +++ b/sys-devel/gcc/Manifest @@ -111,6 +111,7 @@ DIST gcc-17-20260705.tar.xz 99562960 BLAKE2B 940a4601a98682bf268e8f9929918666297 DIST gcc-17-20260712.tar.xz 99644004 BLAKE2B 44ec1406c4a244680784f5b0b58680fa46e15c4f6d91b5222d38a24a45c8e8e26df8cec431183a42b94b2b775ac5e680219dfe8e8ff70d56bab9446582bdc9e7 SHA512 805fdb8def2362c9cc87087c86d2a144076371cf3f2da0bfe9ccb2cfcd7b04f40db36869972476bf936213e6eb4aa1a45a2248175a3d717308490f74941171cd DIST gcc-17-20260719.tar.xz 99705072 BLAKE2B 1b1df12903d2764a55bbaf84e124049102ede274669af17092614670aa1dc74646e60521b1c6dcf13fd4d2979605d02e26b1ff711048cd3727e45d22dfdc694a SHA512 2c102293aeaaa13b046d0f68e6b6ba98b6e1fcf2540437e2dfbb3d07b2b44ab3d7f2b6cfea2a96fbed5cfd28b2aa285bfcb202dc996cbb524255bcf84b098fbc DIST gcc-17-20260726.tar.xz 99770080 BLAKE2B 2c3f137cf3a01c57f879a0e84d45815e271cce13d6f043ad5ae12281d4b30d4c5ab6a86a42133683ed2a4ff09250b16846d0f6484880f78fd1b7b9d902231c70 SHA512 6a503ca0cdd5fd6eedfd28ef408581dabefeb603b1e5ec472c99e4b6152af1cb5c23524b27f2503369554f127578f0119d38cb7095ba375ab26ac86be6397dd9 +DIST gcc-17-20260802.tar.xz 99815476 BLAKE2B dd1d418beb491129a6ffcdfadd719596cee93508132469daacb8648716d2a96ba4bf40de4bd7b8858ccad039004c7b19562a498845a57192a0e10b8878f6c0ee SHA512 432d2a371b0be75fe6f10473d8d85544dc997ec74b70bba01a7351bee82fd42d68d5818b6b9f5e83cb26782a9873da0e3d0a75d31f1b907bd9efbb728b989e7c DIST gcc-17.0.0-musl-patches-1.tar.xz 3040 BLAKE2B cc39906facd9c395bae9f87c67124066b8081521df39857d752f1e398dca5113240d24a836ca0f793313f954d6c38ff39961bf71a8036a1d5bc62751e71eb7c9 SHA512 4e330ee1c87229ba30644ad7a6841683aba368ce00585b5a7af433f215e248534a8d81f6f95fcf7b348c7d9aeaf1eeae015d76601e3d918a0ca39d94ed7e521c DIST gcc-17.0.0-patches-1.tar.xz 25196 BLAKE2B 7db76cfcc56556489c5c0698bad9d8f8f41d57f81ee439c7dc57add47858226fc37e8818e1644be69eff7322d4823b28571784dc0166624c866868b92c9f6e42 SHA512 9349836f0578d121b2b824c91f6ec18e5df3c4fc811f9b5e118e0ee957f9983cb2ff3b8b254b5dd912b5b1113259a3e2ac5e7b06c7c121ba9ca964c89a73bfa0 DIST gcc-17.0.0-patches-10.tar.xz 23180 BLAKE2B d0a6bcd57675fbd6090341896f0b8427f04ae1a19c1eba37109de08d474cc857283ea9a64e751710d8266e976c07e07f534b55a6c8b683fa7afb3810b2551f9f SHA512 5e7fb665b2468cd8bc68e573a3e883ed70d4f5688d416fd1c471e2441bad95b6117ebdd433b49c8fbc34c937bc291dc1bcc5f99e1913b611d8833445b2d816d1 diff --git a/sys-devel/gcc/gcc-17.0.0_p20260802.ebuild b/sys-devel/gcc/gcc-17.0.0_p20260802.ebuild new file mode 100644 index 0000000000000..d8d5655c2dead --- /dev/null +++ b/sys-devel/gcc/gcc-17.0.0_p20260802.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 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_HAS_TESTS=1 +PATCH_GCC_VER="17.0.0" +PATCH_VER="10" +MUSL_GCC_VER="17.0.0" +MUSL_VER="1" +PYTHON_COMPAT=( python3_{11..14} ) + +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}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +}