commit: d188efac1bacbfd6cf2cf4a19714d7dc22ca164a
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue May 27 14:07:19 2025 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue May 27 14:15:35 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d188efac
sys-devel/gcc: backport time64 bits to 13
On request of dilfridge because 14/15 are broken on m68k, and this
will make it easier to test time64 + new int alignment.
Signed-off-by: Sam James <sam <AT> gentoo.org>
eclass/toolchain.eclass | 4 +-
sys-devel/gcc/Manifest | 1 +
sys-devel/gcc/gcc-13.3.1_p20250522-r1.ebuild | 69 ++++++++++++++++++++++++++++
3 files changed, 72 insertions(+), 2 deletions(-)
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index bc10e7e62d1f..418ca888f14b 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -338,7 +338,7 @@ if [[ ${PN} != kgcc64 && ${PN} != gcc-* ]] ; then
# and
https://rust-gcc.github.io/2023/04/24/gccrs-and-gcc13-release.html for why
# it was disabled in 13.
tc_version_is_at_least 14.0.0_pre20230423 ${PV} && IUSE+=" rust"
TC_FEATURES+=( rust )
- tc_version_is_at_least 14.2.1_p20241026 ${PV} && IUSE+=" time64"
+ tc_version_is_at_least 13.3.1_p20250522 ${PV} && IUSE+=" time64"
tc_version_is_at_least 15.0.0_pre20241124 ${PV} && IUSE+="
libgdiagnostics"
tc_version_is_at_least 15.0.1_pre20250316 ${PV} && IUSE+=" cobol"
fi
@@ -1189,7 +1189,7 @@ toolchain_src_configure() {
downgrade_arch_flags
gcc_do_filter_flags
- if [[ ${PN} != kgcc64 && ${PN} != gcc-* ]] && tc_version_is_at_least
14.2.1_p20241026 ${PV}; then
+ if [[ ${PN} != kgcc64 && ${PN} != gcc-* ]] && tc_version_is_at_least
13.3.1_p20250522 ${PV}; then
append-cppflags "-D_GENTOO_TIME64_FORCE=$(usex time64 1 0)"
fi
diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest
index 654fd74510e6..ae3b9c269df1 100644
--- a/sys-devel/gcc/Manifest
+++ b/sys-devel/gcc/Manifest
@@ -30,6 +30,7 @@ DIST gcc-13.2.0.tar.xz 87858592 BLAKE2B
0034b29d3d6cc05821f0c4253ce077805943aff7
DIST gcc-13.3.0-patches-2.tar.xz 44440 BLAKE2B
ebde73f6c3cd1a5fdc5bbce36414a59dda0925cba9d422d3689fc9c14fece44ee2391982a674411aa99bf47ffd49200f3ce51cc908beb8298adfff78e709a84c
SHA512
eb56e0d7e69b5c3cca21f4cbff21c1204cf64ede7e66d689f45cf5ff37de8a59f24eb1f4b30d9c4222fd4126654fe4ffc146851f504761014995553c1202e8fd
DIST gcc-13.3.0-patches-3.tar.xz 51904 BLAKE2B
f93896e6cd6fbbe8d996781ba4c4cf48d70063d0af79a595ca30686e3452e4a5a5517cdd1b91bf1502a9402bb0ad1f8c26b105d147f1e79ef6810bdf90ad13c2
SHA512
179e3b99350752ca3c672fe97b3168f27030aba8505b95c1ebc18592270a82f00175ccaf24f68eb90a9282bc1eda2794b3fd69bf5815af960a64356f36421937
DIST gcc-13.3.0-patches-4.tar.xz 51768 BLAKE2B
54bcd1875af5ef50bb67c0152e1f8e7c2b8da98b17a97186e47da82f19ccf14393c62b40b26a8736e63858f59a56f1d9352f5b01480925192b766e319711db21
SHA512
33bd289b370be512604a1f8f1798c43ceac4c4eebbd0c409b9ddefc6716844bd9d5fa15b41845fc1e93c40e4e93ec9ccaab730ac768fad98f47033782400ab17
+DIST gcc-13.3.0-patches-5.tar.xz 52820 BLAKE2B
73759dc576aab9e5f66dc7f9a1e8eb1b79a98bdb85bfdac9d611baa82c85a5f433d5031876c6e0ee2f02dd1d874da1661b0dd0f05906b118502f17bfaf16eb1a
SHA512
4e6b626a562657f2d928324b412d5033464c09d283ad3a2ebfebbb5245bffb09c2532318325c4c16f4206df5cede6758fe1031c55e64dfb9b9ea08ef2c1e90af
DIST gcc-14-20241221.tar.xz 88198252 BLAKE2B
7491c2e1c8885e201859143bdf5cae95af4c0db77709ec7d761ad535df30042f5deb8488ba7c508de3673e4b0f2af1de8d17476f39cd47b745ddccec6a9e4470
SHA512
91fe1e1d1f8e8fad64930a2eadf942a542bd42f841fceb49f475bccac00f04692b8cd38821ea9ee05f78b5c51001d8bd39df5f71f3a3d89aab8980019cea9be8
DIST gcc-14-20250301.tar.xz 88230928 BLAKE2B
2b65e7cccbf431a74df73adac53995873e78240d7abd97e9c9c576806c389b3c1abb6d47710a25a26f2ee399de750a07c3fb7916a580875d08a3a83354d89c1c
SHA512
6b2afe19ce95a595307ae10b89054927116d33b499f1ef8233936d719271c04cb8f66890068ef2252c59ab0276dd0e6210990cb88abdfb4965818c25949f431e
DIST gcc-14-20250419.tar.xz 88251960 BLAKE2B
b9d8312ac8dd9dd82128ff872e379f3426b4464e940ebd7748e53d6cd41e5a0f936f01ffdd3beb308a693ce98d3c323206ec67006de0735a430534b21899ae6d
SHA512
44cd816dc61d4cf9925be47b75c5ddfc791dbfb43cc56a82e3a46673e8a2753d69f8b9230d68399c4b232c2daab85622168998f2dab767bb78c2292613dd6643
diff --git a/sys-devel/gcc/gcc-13.3.1_p20250522-r1.ebuild
b/sys-devel/gcc/gcc-13.3.1_p20250522-r1.ebuild
new file mode 100644
index 000000000000..bb96cde3f499
--- /dev/null
+++ b/sys-devel/gcc/gcc-13.3.1_p20250522-r1.ebuild
@@ -0,0 +1,69 @@
+# 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
+PATCH_GCC_VER="13.3.0"
+MUSL_GCC_VER="13.2.0"
+PATCH_VER="5"
+MUSL_VER="2"
+PYTHON_COMPAT=( python3_{10..14} )
+
+if [[ ${PV} == *.9999 ]] ; then
+ MY_PV_2=$(ver_cut 2)
+ MY_PV_3=1
+ if [[ ${MY_PV_2} == 0 ]] ; then
+ MY_PV_2=0
+ MY_PV_3=0
+ else
+ MY_PV_2=$((${MY_PV_2} - 1))
+ fi
+
+ # e.g. 12.2.9999 -> 12.1.1
+ TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3}
+elif [[ -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
+ # 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
+ eapply_user
+}