diff options
author | Andreas K. Hüttel <dilfridge@gentoo.org> | 2023-09-03 18:04:30 +0200 |
---|---|---|
committer | Andreas K. Hüttel <dilfridge@gentoo.org> | 2023-09-03 18:04:30 +0200 |
commit | ce186f2dcd2a3e959ea77ad26e86ad58b5ab21e7 (patch) | |
tree | 32bd7f1f0db96779d369edc0e62d4a6689f5b9ac | |
parent | sys-devel/gcc: new package, add 13.2.1_p20230826 (diff) | |
download | dilfridge-ce186f2dcd2a3e959ea77ad26e86ad58b5ab21e7.tar.gz dilfridge-ce186f2dcd2a3e959ea77ad26e86ad58b5ab21e7.tar.bz2 dilfridge-ce186f2dcd2a3e959ea77ad26e86ad58b5ab21e7.zip |
sys-devel/gcc: modify only on multilib
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
-rw-r--r-- | sys-devel/gcc/gcc-13.2.1_p20230826-r1.ebuild | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/sys-devel/gcc/gcc-13.2.1_p20230826-r1.ebuild b/sys-devel/gcc/gcc-13.2.1_p20230826-r1.ebuild new file mode 100644 index 0000000..3f07aa1 --- /dev/null +++ b/sys-devel/gcc/gcc-13.2.1_p20230826-r1.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +TOOLCHAIN_PATCH_DEV="sam" +PATCH_GCC_VER="13.2.0" +PATCH_VER="7" +MUSL_VER="2" +MUSL_GCC_VER="13.2.0" + +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 + +# gcc barfs with our nonstandard riscv multilib construction, so let's +# reset it to default and trust the compatibility symlinks (multilib only) +if [[ ${CTARGET} == riscv* ]] && [[ ${MULTILIB_ABIS} =~ " " ]] ; then + export LIBDIR_lp64d=lib64/lp64d + export LIBDIR_lp64=lib64/lp64 + export LIBDIR_ilp32d=lib32/ilp32d + export LIBDIR_ilp32=lib32/ilp32 +fi + +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 ~ia64 ~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}" + BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]" +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 +} |