From 0608930b1989198a3d5c0b3471a2c4c8e3dc659d Mon Sep 17 00:00:00 2001 From: Sam James Date: Sat, 24 Jun 2023 23:47:11 +0100 Subject: [PATCH 1/2] sys-devel/gcc: add 13.1.1_p20230624 Signed-off-by: Sam James --- sys-devel/gcc/Manifest | 1 + sys-devel/gcc/gcc-13.1.1_p20230624.ebuild | 65 +++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 sys-devel/gcc/gcc-13.1.1_p20230624.ebuild diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest index 957a649573be0..f60add606de6b 100644 --- a/sys-devel/gcc/Manifest +++ b/sys-devel/gcc/Manifest @@ -24,6 +24,7 @@ DIST gcc-13-20230527.tar.xz 83956360 BLAKE2B 86a2131b88144817673a6300c73b29c2dbb DIST gcc-13-20230603.tar.xz 83954444 BLAKE2B 4be067c2159ae2a8ef3d699acab981cb911668bb0af84693b0226f58688146b0f93324296c584c6dca6df839ba344cff927cc82d20fce8c6b2282b256d745141 SHA512 ca1b41df7bf18c65189116099afcb43f65e13b17e57bf52049e739af223d51c3b825e2f80e239a3ddceec07693c991a85ec58ab6855255802d8bd413ff4324cf DIST gcc-13-20230610.tar.xz 83983712 BLAKE2B 2584a5b6bfb8304c3065b256f432e578aef8fd7a4e3e9dc4cdbfb6d0a90ad8cb9d0b0f65ad67fad417878875160abb289314c1f27c775abc97c45c2b7ff7958a SHA512 a2e00bb5d816d37ea38de7662bb26616603b14cf08bc3452f39300fc8efed3fad372f7603deb36e0e6dd06f082c815997ba22c2b7438e379e782682e6333578d DIST gcc-13-20230617.tar.xz 83971924 BLAKE2B 3e50ff5e54d9a4c6a5f81fb6111837df9efc105484cfb67423a0a4a1ef72c229fabdabccfdc14098be49ade9a13117a843890dcf16c3d3a43abe3332e8fbbf21 SHA512 e1d31883518a2fd040e9ea2b022c0cddca9ce1026317613db4dfbfa0aa704f3229c6b5a39d50ed920f242524b937d40a113edf9b89ad7f04a5b4af32835271ea +DIST gcc-13-20230624.tar.xz 83969940 BLAKE2B 8a145ade87b38226d25161a0494b781e3cba1cfda229ffa367ed570aa97cdd3c38a520ae14e9ed9050fe844b229ac7bd8c2ef37544c472d39b8d75f7b9ecc3af SHA512 98e5fe2e780646f67f6d8ed2e9f8338a9be27ade40c2cfa78b7fa3f9c9a0a74771292b3eb81c5713f230f90bdec46104fa655ca4286bb9e6065432ae10122f54 DIST gcc-13.2.0-musl-patches-2.tar.xz 5292 BLAKE2B c057d6574d03c05854edaa9f3fd40e9149662b04f3ac7a7db3eb078d73a7b535726d1bf52e5b12736dedb2f9898ad731f2e48a6421fcfbf7b90f929dee072fcb SHA512 a691da0c87c443a5e9d23731f4005f27871c5b12bc9102873ffa24d374aa7b9fbd187c4f5635d23fa9ffb17e351e76173c2d3fdf40646e355c4cb314b538de69 DIST gcc-13.2.0-patches-3.tar.xz 30956 BLAKE2B 29ce043b46645640ca1e983397af3e158588ad87575f0bc59451ea4a7dd5e3bb5b190ed031de6a22cd790d423ba111e95d222187dd09985dceb12db9f0a2d907 SHA512 4ffecae7be320124ad0c4e71e39e142b7aa8db0e70b5f486f491d7a33ea31efc6464c6abeea77df02a8bd5cf81f08225d625c8af5c27f9afa32c0d7d989f7a3c DIST gcc-14-20230529.tar.xz 84197648 BLAKE2B 1b8b812866294bafd7bf53c823b3d55288d5a30c54e921495d19286b9d04a1bf7c5228b052941200ecc61a516355d977229fc9e60cfe4353154811c1261054ab SHA512 bba930dc4b6b6a45bb5f33e4b46dc16d1d581b266078c5492833e2b4e64a93d2d19389a436c64dc2159240b07134f4f7242bef3cf35f303d34e10bf493fe70ba diff --git a/sys-devel/gcc/gcc-13.1.1_p20230624.ebuild b/sys-devel/gcc/gcc-13.1.1_p20230624.ebuild new file mode 100644 index 0000000000000..994717045fb53 --- /dev/null +++ b/sys-devel/gcc/gcc-13.1.1_p20230624.ebuild @@ -0,0 +1,65 @@ +# 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="3" +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 + +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 ~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 +} From bec5d131862313fe6ee3628f0591947abe679591 Mon Sep 17 00:00:00 2001 From: Raul E Rangel Date: Wed, 19 Apr 2023 15:54:01 -0600 Subject: [PATCH 2/2] cmake.eclass: Set CMAKE_SYSROOT when building with SYSROOT= When performing a SYSROOT= build, the --sysroot parameter was not getting passed to the compiler if the CBUILD and CHOST matched. This results in the build attempting to use BROOT libraries and headers instead of the ones from the SYSROOT. This change will allow `llvm` to be built into a new SYSROOT. ROOT=/build/amd64-host emerge sys-devel/llvm Signed-off-by: Raul E Rangel Closes: https://github.com/gentoo/gentoo/pull/30658 Signed-off-by: James Le Cuirot --- eclass/cmake.eclass | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass index 24787f1c2a49a..1cdbc123a2431 100644 --- a/eclass/cmake.eclass +++ b/eclass/cmake.eclass @@ -484,17 +484,17 @@ cmake_src_configure() { cat >> "${toolchain_file}" <<- _EOF_ || die set(CMAKE_SYSTEM_NAME "${sysname}") _EOF_ + fi - if [ "${SYSROOT:-/}" != "/" ] ; then - # When cross-compiling with a sysroot (e.g. with crossdev's emerge wrappers) - # we need to tell cmake to use libs/headers from the sysroot but programs from / only. - cat >> "${toolchain_file}" <<- _EOF_ || die - set(CMAKE_SYSROOT "${ESYSROOT}") - set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) - set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) - _EOF_ - fi + if [[ ${SYSROOT:-/} != / ]] ; then + # When building with a sysroot (e.g. with crossdev's emerge wrappers) + # we need to tell cmake to use libs/headers from the sysroot but programs from / only. + cat >> "${toolchain_file}" <<- _EOF_ || die + set(CMAKE_SYSROOT "${ESYSROOT}") + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) + _EOF_ fi if use prefix-guest; then