From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 7308F15807B for ; Mon, 11 Nov 2024 23:48:25 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 7E61EE07F6; Mon, 11 Nov 2024 23:48:24 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 5375AE07F6 for ; Mon, 11 Nov 2024 23:48:24 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 57A17340C8A for ; Mon, 11 Nov 2024 23:48:23 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 572451915 for ; Mon, 11 Nov 2024 23:48:21 +0000 (UTC) From: "Matt Jolly" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Jolly" Message-ID: <1731368415.349e9c05f6e7b9ee98f700c72f8023d1d3f61223.kangie@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/rust/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-lang/rust/rust-1.71.1-r100.ebuild dev-lang/rust/rust-1.74.1-r100.ebuild dev-lang/rust/rust-1.75.0-r100.ebuild dev-lang/rust/rust-1.77.1-r100.ebuild dev-lang/rust/rust-1.79.0-r100.ebuild dev-lang/rust/rust-1.80.1-r100.ebuild dev-lang/rust/rust-1.81.0-r100.ebuild dev-lang/rust/rust-1.82.0-r100.ebuild X-VCS-Directories: dev-lang/rust/ X-VCS-Committer: kangie X-VCS-Committer-Name: Matt Jolly X-VCS-Revision: 349e9c05f6e7b9ee98f700c72f8023d1d3f61223 X-VCS-Branch: master Date: Mon, 11 Nov 2024 23:48:21 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 792613ad-1268-4322-859c-b32fadb8b5dc X-Archives-Hash: 19ce94324a2ac83b99bb71b47203c8bb commit: 349e9c05f6e7b9ee98f700c72f8023d1d3f61223 Author: Matt Jolly gentoo org> AuthorDate: Mon Nov 11 21:12:24 2024 +0000 Commit: Matt Jolly gentoo org> CommitDate: Mon Nov 11 23:40:15 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=349e9c05 dev-lang/rust: drop USE=system-bootstrap To be consistent with other ecosystems (e.g. Ada, Go), we can take advantage of the new Rust eclass (and some earlier prep work on USE=system-bootstrap) to completely remove that build path. This isn't a big change; dev-lang/rust without system-bootstrap would previously download its own bootstrap binary (same as rust-bin) instead of depending on dev-lang/rust-bin as appropriate. dev-lang/rust will now always receive an `||` dependency which ensures that an appropriate dev-lang/rust{,-bin} is available on the system to do any required bootstrapping. This will reduce Rust maintenance overhead, and make it more transparent to users that a Rust binary is required to bootstrap rust. Closes: https://bugs.gentoo.org/943144 Signed-off-by: Matt Jolly gentoo.org> dev-lang/rust/rust-1.71.1-r100.ebuild | 52 ++--------------------------- dev-lang/rust/rust-1.74.1-r100.ebuild | 60 ++-------------------------------- dev-lang/rust/rust-1.75.0-r100.ebuild | 60 ++-------------------------------- dev-lang/rust/rust-1.77.1-r100.ebuild | 60 ++-------------------------------- dev-lang/rust/rust-1.79.0-r100.ebuild | 60 ++-------------------------------- dev-lang/rust/rust-1.80.1-r100.ebuild | 60 ++-------------------------------- dev-lang/rust/rust-1.81.0-r100.ebuild | 61 +++-------------------------------- dev-lang/rust/rust-1.82.0-r100.ebuild | 58 +++------------------------------ 8 files changed, 26 insertions(+), 445 deletions(-) diff --git a/dev-lang/rust/rust-1.71.1-r100.ebuild b/dev-lang/rust/rust-1.71.1-r100.ebuild index 66741c10fed6..4207e971e6a8 100644 --- a/dev-lang/rust/rust-1.71.1-r100.ebuild +++ b/dev-lang/rust/rust-1.71.1-r100.ebuild @@ -6,8 +6,6 @@ EAPI=8 LLVM_COMPAT=( 16 ) PYTHON_COMPAT=( python3_{10..12} ) -# We only need this for system-bootstrap -RUST_OPTIONAL=1 RUST_MAX_VER=${PV} RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" @@ -25,15 +23,12 @@ else KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86" fi -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" - DESCRIPTION="Language empowering everyone to build reliable and efficient software" HOMEPAGE="https://www.rust-lang.org/" SRC_URI=" https://static.rust-lang.org/dist/${SRC} verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc ) - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) " S="${WORKDIR}/${MY_P}-src" @@ -62,7 +57,6 @@ BDEPEND="${PYTHON_DEPS} >=sys-devel/gcc-4.7 >=sys-devel/clang-3.5 ) - system-bootstrap? ( ${RUST_DEPEND} ) !system-llvm? ( >=dev-build/cmake-3.13.4 app-alternatives/ninja @@ -147,7 +141,7 @@ toml_usex() { } pre_build_checks() { - local M=8192 + local M=9216 # multiply requirements by 1.3 if we are doing x86-multilib if use amd64; then M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 )) @@ -170,7 +164,6 @@ pre_build_checks() { M=$(( 15 * ${M} / 10 )) fi eshopts_pop - M=$(( $(usex system-bootstrap 0 1024) + ${M} )) M=$(( $(usex doc 256 0) + ${M} )) CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} } @@ -200,7 +193,7 @@ pkg_setup() { export LIBGIT2_NO_PKG_CONFIG=1 #749381 - use system-bootstrap && rust_pkg_setup + rust_pkg_setup if use system-llvm; then llvm-r1_pkg_setup @@ -211,38 +204,6 @@ pkg_setup() { fi } -esetup_unwind_hack() { - # https://bugs.gentoo.org/870280 - # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system. - # it should trigger for internal bootstrap or system-bootstrap with rust-bin. - # the whole idea is for stage0 to bootstrap with fake libgcc_s. - # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler. - local fakelib="${T}/fakelib" - mkdir -p "${fakelib}" || die - # we need both symlinks, one for cargo runtime, other for linker. - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die - export LD_LIBRARY_PATH="${fakelib}" - export RUSTFLAGS+=" -L${fakelib}" - # this is a literally magic variable that gets through cargo cache, without it some - # crates ignore RUSTFLAGS. - # this variable can not contain leading space. - export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}" -} - -src_prepare() { - if ! use system-bootstrap; then - has_version sys-devel/gcc || esetup_unwind_hack - local rust_stage0_root="${WORKDIR}"/rust-stage0 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ - --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die - fi - - default -} - src_configure() { filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 @@ -270,14 +231,7 @@ src_configure() { use rust-analyzer && tools+=',"rust-analyzer"' use rust-src && tools+=',"src"' - local rust_stage0_root - if use system-bootstrap; then - local printsysroot - printsysroot="$(${RUSTC} --print --sysroot || die "Can't determine rust's sysroot")" - rust_stage0_root="${printsysroot}" - else - rust_stage0_root="${WORKDIR}"/rust-stage0 - fi + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" # in case of prefix it will be already prefixed, as --print sysroot returns full path [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory" diff --git a/dev-lang/rust/rust-1.74.1-r100.ebuild b/dev-lang/rust/rust-1.74.1-r100.ebuild index 5e9c19aaab5e..162ce69c5340 100644 --- a/dev-lang/rust/rust-1.74.1-r100.ebuild +++ b/dev-lang/rust/rust-1.74.1-r100.ebuild @@ -6,8 +6,6 @@ EAPI=8 LLVM_COMPAT=( 17 ) PYTHON_COMPAT=( python3_{10..12} ) -# We only need this for system-bootstrap -RUST_OPTIONAL=1 RUST_MAX_VER=${PV} RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" @@ -25,15 +23,12 @@ else KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv sparc x86" fi -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" - DESCRIPTION="Language empowering everyone to build reliable and efficient software" HOMEPAGE="https://www.rust-lang.org/" SRC_URI=" https://static.rust-lang.org/dist/${SRC} verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc ) - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) " S="${WORKDIR}/${MY_P}-src" @@ -64,7 +59,6 @@ BDEPEND="${PYTHON_DEPS} >=sys-devel/gcc-4.7 >=sys-devel/clang-3.5 ) - system-bootstrap? ( ${RUST_DEPEND} ) !system-llvm? ( >=dev-build/cmake-3.13.4 app-alternatives/ninja @@ -154,7 +148,7 @@ toml_usex() { } pre_build_checks() { - local M=8192 + local M=9216 # multiply requirements by 1.3 if we are doing x86-multilib if use amd64; then M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 )) @@ -177,7 +171,6 @@ pre_build_checks() { M=$(( 15 * ${M} / 10 )) fi eshopts_pop - M=$(( $(usex system-bootstrap 0 1024) + ${M} )) M=$(( $(usex doc 256 0) + ${M} )) CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} } @@ -212,14 +205,13 @@ pkg_setup() { export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include" export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)" - use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling" use system-llvm && die "USE=system-llvm not allowed when cross-compiling" local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")" use "llvm_targets_${cross_llvm_target}" || \ die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling" fi - use system-bootstrap && rust_pkg_setup + rust_pkg_setup if use system-llvm; then llvm-r1_pkg_setup @@ -230,45 +222,6 @@ pkg_setup() { fi } -esetup_unwind_hack() { - # https://bugs.gentoo.org/870280 - # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system. - # it should trigger for internal bootstrap or system-bootstrap with rust-bin. - # the whole idea is for stage0 to bootstrap with fake libgcc_s. - # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler. - local fakelib="${T}/fakelib" - mkdir -p "${fakelib}" || die - # we need both symlinks, one for cargo runtime, other for linker. - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die - export LD_LIBRARY_PATH="${fakelib}" - export RUSTFLAGS+=" -L${fakelib}" - # this is a literally magic variable that gets through cargo cache, without it some - # crates ignore RUSTFLAGS. - # this variable can not contain leading space. - export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}" -} - -src_prepare() { - # Clear vendor checksums for crates that we patched to bump libc. - # NOTE: refresh this on each bump. - #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \ - # terminal_size tracing-tree; do - # clear_vendor_checksums "${i}" - #done - - if ! use system-bootstrap; then - has_version sys-devel/gcc || esetup_unwind_hack - local rust_stage0_root="${WORKDIR}"/rust-stage0 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ - --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die - fi - - default -} - src_configure() { filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 @@ -296,14 +249,7 @@ src_configure() { use rust-analyzer && tools+=',"rust-analyzer"' use rust-src && tools+=',"src"' - local rust_stage0_root - if use system-bootstrap; then - local printsysroot - printsysroot="$(${RUSTC} --print --sysroot || die "Can't determine rust's sysroot")" - rust_stage0_root="${printsysroot}" - else - rust_stage0_root="${WORKDIR}"/rust-stage0 - fi + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" # in case of prefix it will be already prefixed, as --print sysroot returns full path [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory" diff --git a/dev-lang/rust/rust-1.75.0-r100.ebuild b/dev-lang/rust/rust-1.75.0-r100.ebuild index 447ec8612dd5..ae3ba52f7c38 100644 --- a/dev-lang/rust/rust-1.75.0-r100.ebuild +++ b/dev-lang/rust/rust-1.75.0-r100.ebuild @@ -6,8 +6,6 @@ EAPI=8 LLVM_COMPAT=( 17 ) PYTHON_COMPAT=( python3_{10..12} ) -# We only need this for system-bootstrap -RUST_OPTIONAL=1 RUST_MAX_VER=${PV} RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" @@ -25,15 +23,12 @@ else KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv sparc x86" fi -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" - DESCRIPTION="Language empowering everyone to build reliable and efficient software" HOMEPAGE="https://www.rust-lang.org/" SRC_URI=" https://static.rust-lang.org/dist/${SRC} verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc ) - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) " S="${WORKDIR}/${MY_P}-src" @@ -63,7 +58,6 @@ BDEPEND="${PYTHON_DEPS} >=sys-devel/gcc-4.7 >=sys-devel/clang-3.5 ) - system-bootstrap? ( ${RUST_DEPEND} ) !system-llvm? ( >=dev-build/cmake-3.13.4 app-alternatives/ninja @@ -156,7 +150,7 @@ toml_usex() { } pre_build_checks() { - local M=8192 + local M=9216 # multiply requirements by 1.3 if we are doing x86-multilib if use amd64; then M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 )) @@ -179,7 +173,6 @@ pre_build_checks() { M=$(( 15 * ${M} / 10 )) fi eshopts_pop - M=$(( $(usex system-bootstrap 0 1024) + ${M} )) M=$(( $(usex doc 256 0) + ${M} )) CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} } @@ -214,14 +207,13 @@ pkg_setup() { export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include" export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)" - use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling" use system-llvm && die "USE=system-llvm not allowed when cross-compiling" local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")" use "llvm_targets_${cross_llvm_target}" || \ die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling" fi - use system-bootstrap && rust_pkg_setup + rust_pkg_setup if use system-llvm; then llvm-r1_pkg_setup @@ -232,45 +224,6 @@ pkg_setup() { fi } -esetup_unwind_hack() { - # https://bugs.gentoo.org/870280 - # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system. - # it should trigger for internal bootstrap or system-bootstrap with rust-bin. - # the whole idea is for stage0 to bootstrap with fake libgcc_s. - # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler. - local fakelib="${T}/fakelib" - mkdir -p "${fakelib}" || die - # we need both symlinks, one for cargo runtime, other for linker. - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die - export LD_LIBRARY_PATH="${fakelib}" - export RUSTFLAGS+=" -L${fakelib}" - # this is a literally magic variable that gets through cargo cache, without it some - # crates ignore RUSTFLAGS. - # this variable can not contain leading space. - export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}" -} - -src_prepare() { - # Clear vendor checksums for crates that we patched to bump libc. - # NOTE: refresh this on each bump. - #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \ - # terminal_size tracing-tree; do - # clear_vendor_checksums "${i}" - #done - - if ! use system-bootstrap; then - has_version sys-devel/gcc || esetup_unwind_hack - local rust_stage0_root="${WORKDIR}"/rust-stage0 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ - --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die - fi - - default -} - src_configure() { filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 @@ -298,14 +251,7 @@ src_configure() { use rust-analyzer && tools+=',"rust-analyzer"' use rust-src && tools+=',"src"' - local rust_stage0_root - if use system-bootstrap; then - local printsysroot - printsysroot="$(${RUSTC} --print --sysroot || die "Can't determine rust's sysroot")" - rust_stage0_root="${printsysroot}" - else - rust_stage0_root="${WORKDIR}"/rust-stage0 - fi + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" # in case of prefix it will be already prefixed, as --print sysroot returns full path [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory" diff --git a/dev-lang/rust/rust-1.77.1-r100.ebuild b/dev-lang/rust/rust-1.77.1-r100.ebuild index 581eabab194f..649a30d32e85 100644 --- a/dev-lang/rust/rust-1.77.1-r100.ebuild +++ b/dev-lang/rust/rust-1.77.1-r100.ebuild @@ -6,8 +6,6 @@ EAPI=8 LLVM_COMPAT=( 17 ) PYTHON_COMPAT=( python3_{10..12} ) -# We only need this for system-bootstrap -RUST_OPTIONAL=1 RUST_MAX_VER=${PV} RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" @@ -25,15 +23,12 @@ else KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv sparc x86" fi -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" - DESCRIPTION="Systems programming language from Mozilla" HOMEPAGE="https://www.rust-lang.org/" SRC_URI=" https://static.rust-lang.org/dist/${SRC} verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc ) - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) " S="${WORKDIR}/${MY_P}-src" @@ -63,7 +58,6 @@ BDEPEND="${PYTHON_DEPS} >=sys-devel/gcc-4.7 >=sys-devel/clang-3.5 ) - system-bootstrap? ( ${RUST_DEPEND} ) !system-llvm? ( >=dev-build/cmake-3.13.4 app-alternatives/ninja @@ -154,7 +148,7 @@ toml_usex() { } pre_build_checks() { - local M=8192 + local M=9216 # multiply requirements by 1.3 if we are doing x86-multilib if use amd64; then M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 )) @@ -177,7 +171,6 @@ pre_build_checks() { M=$(( 15 * ${M} / 10 )) fi eshopts_pop - M=$(( $(usex system-bootstrap 0 1024) + ${M} )) M=$(( $(usex doc 256 0) + ${M} )) CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} } @@ -212,14 +205,13 @@ pkg_setup() { export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include" export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)" - use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling" use system-llvm && die "USE=system-llvm not allowed when cross-compiling" local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")" use "llvm_targets_${cross_llvm_target}" || \ die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling" fi - use system-bootstrap && rust_pkg_setup + rust_pkg_setup if use system-llvm; then llvm-r1_pkg_setup @@ -230,45 +222,6 @@ pkg_setup() { fi } -esetup_unwind_hack() { - # https://bugs.gentoo.org/870280 - # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system. - # it should trigger for internal bootstrap or system-bootstrap with rust-bin. - # the whole idea is for stage0 to bootstrap with fake libgcc_s. - # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler. - local fakelib="${T}/fakelib" - mkdir -p "${fakelib}" || die - # we need both symlinks, one for cargo runtime, other for linker. - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die - export LD_LIBRARY_PATH="${fakelib}" - export RUSTFLAGS+=" -L${fakelib}" - # this is a literally magic variable that gets through cargo cache, without it some - # crates ignore RUSTFLAGS. - # this variable can not contain leading space. - export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}" -} - -src_prepare() { - # Clear vendor checksums for crates that we patched to bump libc. - # NOTE: refresh this on each bump. - #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \ - # terminal_size tracing-tree; do - # clear_vendor_checksums "${i}" - #done - - if ! use system-bootstrap; then - has_version sys-devel/gcc || esetup_unwind_hack - local rust_stage0_root="${WORKDIR}"/rust-stage0 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ - --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die - fi - - default -} - src_configure() { filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 @@ -296,14 +249,7 @@ src_configure() { use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' use rust-src && tools+=',"src"' - local rust_stage0_root - if use system-bootstrap; then - local printsysroot - printsysroot="$(${RUSTC} --print --sysroot || die "Can't determine rust's sysroot")" - rust_stage0_root="${printsysroot}" - else - rust_stage0_root="${WORKDIR}"/rust-stage0 - fi + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" # in case of prefix it will be already prefixed, as --print sysroot returns full path [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory" diff --git a/dev-lang/rust/rust-1.79.0-r100.ebuild b/dev-lang/rust/rust-1.79.0-r100.ebuild index 5b7a5c245acf..2b16ec509faa 100644 --- a/dev-lang/rust/rust-1.79.0-r100.ebuild +++ b/dev-lang/rust/rust-1.79.0-r100.ebuild @@ -6,8 +6,6 @@ EAPI=8 LLVM_COMPAT=( 18 ) PYTHON_COMPAT=( python3_{10..13} ) -# We only need this for system-bootstrap -RUST_OPTIONAL=1 RUST_MAX_VER=${PV} RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" @@ -25,15 +23,12 @@ else KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86" fi -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" - DESCRIPTION="Systems programming language from Mozilla" HOMEPAGE="https://www.rust-lang.org/" SRC_URI=" https://static.rust-lang.org/dist/${SRC} verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc ) - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) " S="${WORKDIR}/${MY_P}-src" @@ -63,7 +58,6 @@ BDEPEND="${PYTHON_DEPS} >=sys-devel/gcc-4.7 >=sys-devel/clang-3.5 ) - system-bootstrap? ( ${RUST_DEPEND} ) !system-llvm? ( >=dev-build/cmake-3.13.4 app-alternatives/ninja @@ -154,7 +148,7 @@ toml_usex() { } pre_build_checks() { - local M=8192 + local M=9216 # multiply requirements by 1.3 if we are doing x86-multilib if use amd64; then M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 )) @@ -177,7 +171,6 @@ pre_build_checks() { M=$(( 15 * ${M} / 10 )) fi eshopts_pop - M=$(( $(usex system-bootstrap 0 1024) + ${M} )) M=$(( $(usex doc 256 0) + ${M} )) CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} } @@ -212,14 +205,13 @@ pkg_setup() { export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include" export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)" - use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling" use system-llvm && die "USE=system-llvm not allowed when cross-compiling" local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")" use "llvm_targets_${cross_llvm_target}" || \ die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling" fi - use system-bootstrap && rust_pkg_setup + rust_pkg_setup if use system-llvm; then llvm-r1_pkg_setup @@ -230,45 +222,6 @@ pkg_setup() { fi } -esetup_unwind_hack() { - # https://bugs.gentoo.org/870280 - # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system. - # it should trigger for internal bootstrap or system-bootstrap with rust-bin. - # the whole idea is for stage0 to bootstrap with fake libgcc_s. - # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler. - local fakelib="${T}/fakelib" - mkdir -p "${fakelib}" || die - # we need both symlinks, one for cargo runtime, other for linker. - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die - export LD_LIBRARY_PATH="${fakelib}" - export RUSTFLAGS+=" -L${fakelib}" - # this is a literally magic variable that gets through cargo cache, without it some - # crates ignore RUSTFLAGS. - # this variable can not contain leading space. - export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}" -} - -src_prepare() { - # Clear vendor checksums for crates that we patched to bump libc. - # NOTE: refresh this on each bump. - #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \ - # terminal_size tracing-tree; do - # clear_vendor_checksums "${i}" - #done - - if ! use system-bootstrap; then - has_version sys-devel/gcc || esetup_unwind_hack - local rust_stage0_root="${WORKDIR}"/rust-stage0 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ - --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die - fi - - default -} - src_configure() { filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 @@ -296,14 +249,7 @@ src_configure() { use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' use rust-src && tools+=',"src"' - local rust_stage0_root - if use system-bootstrap; then - local printsysroot - printsysroot="$(${RUSTC} --print --sysroot || die "Can't determine rust's sysroot")" - rust_stage0_root="${printsysroot}" - else - rust_stage0_root="${WORKDIR}"/rust-stage0 - fi + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" # in case of prefix it will be already prefixed, as --print sysroot returns full path [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory" diff --git a/dev-lang/rust/rust-1.80.1-r100.ebuild b/dev-lang/rust/rust-1.80.1-r100.ebuild index 5fc784e616a9..ac7cf1cda9dc 100644 --- a/dev-lang/rust/rust-1.80.1-r100.ebuild +++ b/dev-lang/rust/rust-1.80.1-r100.ebuild @@ -6,8 +6,6 @@ EAPI=8 LLVM_COMPAT=( 18 ) PYTHON_COMPAT=( python3_{10..13} ) -# We only need this for system-bootstrap -RUST_OPTIONAL=1 RUST_MAX_VER=${PV} RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" @@ -25,15 +23,12 @@ else KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86" fi -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" - DESCRIPTION="Systems programming language from Mozilla" HOMEPAGE="https://www.rust-lang.org/" SRC_URI=" https://static.rust-lang.org/dist/${SRC} verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc ) - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) " S="${WORKDIR}/${MY_P}-src" @@ -63,7 +58,6 @@ BDEPEND="${PYTHON_DEPS} >=sys-devel/gcc-4.7 >=sys-devel/clang-3.5 ) - system-bootstrap? ( ${RUST_DEPEND} ) !system-llvm? ( >=dev-build/cmake-3.13.4 app-alternatives/ninja @@ -153,7 +147,7 @@ toml_usex() { } pre_build_checks() { - local M=8192 + local M=9216 # multiply requirements by 1.3 if we are doing x86-multilib if use amd64; then M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 )) @@ -176,7 +170,6 @@ pre_build_checks() { M=$(( 15 * ${M} / 10 )) fi eshopts_pop - M=$(( $(usex system-bootstrap 0 1024) + ${M} )) M=$(( $(usex doc 256 0) + ${M} )) CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} } @@ -211,14 +204,13 @@ pkg_setup() { export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include" export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)" - use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling" use system-llvm && die "USE=system-llvm not allowed when cross-compiling" local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")" use "llvm_targets_${cross_llvm_target}" || \ die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling" fi - use system-bootstrap && rust_pkg_setup + rust_pkg_setup if use system-llvm; then llvm-r1_pkg_setup @@ -229,45 +221,6 @@ pkg_setup() { fi } -esetup_unwind_hack() { - # https://bugs.gentoo.org/870280 - # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system. - # it should trigger for internal bootstrap or system-bootstrap with rust-bin. - # the whole idea is for stage0 to bootstrap with fake libgcc_s. - # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler. - local fakelib="${T}/fakelib" - mkdir -p "${fakelib}" || die - # we need both symlinks, one for cargo runtime, other for linker. - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die - export LD_LIBRARY_PATH="${fakelib}" - export RUSTFLAGS+=" -L${fakelib}" - # this is a literally magic variable that gets through cargo cache, without it some - # crates ignore RUSTFLAGS. - # this variable can not contain leading space. - export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}" -} - -src_prepare() { - # Clear vendor checksums for crates that we patched to bump libc. - # NOTE: refresh this on each bump. - #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \ - # terminal_size tracing-tree; do - # clear_vendor_checksums "${i}" - #done - - if ! use system-bootstrap; then - has_version sys-devel/gcc || esetup_unwind_hack - local rust_stage0_root="${WORKDIR}"/rust-stage0 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ - --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die - fi - - default -} - src_configure() { filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 @@ -295,14 +248,7 @@ src_configure() { use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' use rust-src && tools+=',"src"' - local rust_stage0_root - if use system-bootstrap; then - local printsysroot - printsysroot="$(${RUSTC} --print --sysroot || die "Can't determine rust's sysroot")" - rust_stage0_root="${printsysroot}" - else - rust_stage0_root="${WORKDIR}"/rust-stage0 - fi + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" # in case of prefix it will be already prefixed, as --print sysroot returns full path [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory" diff --git a/dev-lang/rust/rust-1.81.0-r100.ebuild b/dev-lang/rust/rust-1.81.0-r100.ebuild index 996971d4956d..45a3b156c9e4 100644 --- a/dev-lang/rust/rust-1.81.0-r100.ebuild +++ b/dev-lang/rust/rust-1.81.0-r100.ebuild @@ -6,8 +6,6 @@ EAPI=8 LLVM_COMPAT=( 18 ) PYTHON_COMPAT=( python3_{10..13} ) -# We only need this for system-bootstrap -RUST_OPTIONAL=1 RUST_MAX_VER=${PV} RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" @@ -26,14 +24,12 @@ else fi RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).1" - DESCRIPTION="Systems programming language from Mozilla" HOMEPAGE="https://www.rust-lang.org/" SRC_URI=" https://static.rust-lang.org/dist/${SRC} verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc ) - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) " S="${WORKDIR}/${MY_P}-src" @@ -47,7 +43,7 @@ LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" -IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" +IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation @@ -63,7 +59,6 @@ BDEPEND="${PYTHON_DEPS} >=sys-devel/gcc-4.7 >=sys-devel/clang-3.5 ) - system-bootstrap? ( ${RUST_DEPEND} ) !system-llvm? ( >=dev-build/cmake-3.13.4 app-alternatives/ninja @@ -156,7 +151,7 @@ toml_usex() { } pre_build_checks() { - local M=8192 + local M=9216 # multiply requirements by 1.3 if we are doing x86-multilib if use amd64; then M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 )) @@ -179,7 +174,6 @@ pre_build_checks() { M=$(( 15 * ${M} / 10 )) fi eshopts_pop - M=$(( $(usex system-bootstrap 0 1024) + ${M} )) M=$(( $(usex doc 256 0) + ${M} )) CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} } @@ -214,14 +208,13 @@ pkg_setup() { export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include" export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)" - use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling" use system-llvm && die "USE=system-llvm not allowed when cross-compiling" local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")" use "llvm_targets_${cross_llvm_target}" || \ die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling" fi - use system-bootstrap && rust_pkg_setup + rust_pkg_setup if use system-llvm; then llvm-r1_pkg_setup @@ -232,45 +225,6 @@ pkg_setup() { fi } -esetup_unwind_hack() { - # https://bugs.gentoo.org/870280 - # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system. - # it should trigger for internal bootstrap or system-bootstrap with rust-bin. - # the whole idea is for stage0 to bootstrap with fake libgcc_s. - # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler. - local fakelib="${T}/fakelib" - mkdir -p "${fakelib}" || die - # we need both symlinks, one for cargo runtime, other for linker. - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die - export LD_LIBRARY_PATH="${fakelib}" - export RUSTFLAGS+=" -L${fakelib}" - # this is a literally magic variable that gets through cargo cache, without it some - # crates ignore RUSTFLAGS. - # this variable can not contain leading space. - export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}" -} - -src_prepare() { - # Clear vendor checksums for crates that we patched to bump libc. - # NOTE: refresh this on each bump. - #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \ - # terminal_size tracing-tree; do - # clear_vendor_checksums "${i}" - #done - - if ! use system-bootstrap; then - has_version sys-devel/gcc || esetup_unwind_hack - local rust_stage0_root="${WORKDIR}"/rust-stage0 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ - --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die - fi - - default -} - src_configure() { filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 @@ -298,14 +252,7 @@ src_configure() { use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' use rust-src && tools+=',"src"' - local rust_stage0_root - if use system-bootstrap; then - local printsysroot - printsysroot="$(${RUSTC} --print --sysroot || die "Can't determine rust's sysroot")" - rust_stage0_root="${printsysroot}" - else - rust_stage0_root="${WORKDIR}"/rust-stage0 - fi + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" # in case of prefix it will be already prefixed, as --print sysroot returns full path [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory" diff --git a/dev-lang/rust/rust-1.82.0-r100.ebuild b/dev-lang/rust/rust-1.82.0-r100.ebuild index 0c12c72b72f2..fc2eefa52e7c 100644 --- a/dev-lang/rust/rust-1.82.0-r100.ebuild +++ b/dev-lang/rust/rust-1.82.0-r100.ebuild @@ -6,8 +6,6 @@ EAPI=8 LLVM_COMPAT=( 19 ) PYTHON_COMPAT=( python3_{10..13} ) -# We only need this for system-bootstrap -RUST_OPTIONAL=1 RUST_MAX_VER=${PV} RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" @@ -25,15 +23,12 @@ else KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" fi -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" - DESCRIPTION="Systems programming language from Mozilla" HOMEPAGE="https://www.rust-lang.org/" SRC_URI=" https://static.rust-lang.org/dist/${SRC} verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc ) - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) " S="${WORKDIR}/${MY_P}-src" @@ -47,7 +42,7 @@ LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" SLOT="${PV}" -IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" +IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" LLVM_DEPEND=() # splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation @@ -63,7 +58,6 @@ BDEPEND="${PYTHON_DEPS} >=sys-devel/gcc-4.7 >=sys-devel/clang-3.5 ) - system-bootstrap? ( ${RUST_DEPEND} ) !system-llvm? ( >=dev-build/cmake-3.13.4 app-alternatives/ninja @@ -153,7 +147,7 @@ toml_usex() { } pre_build_checks() { - local M=8192 + local M=9216 # multiply requirements by 1.3 if we are doing x86-multilib if use amd64; then M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 )) @@ -176,7 +170,6 @@ pre_build_checks() { M=$(( 15 * ${M} / 10 )) fi eshopts_pop - M=$(( $(usex system-bootstrap 0 1024) + ${M} )) M=$(( $(usex doc 256 0) + ${M} )) CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} } @@ -211,14 +204,13 @@ pkg_setup() { export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include" export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)" - use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling" use system-llvm && die "USE=system-llvm not allowed when cross-compiling" local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")" use "llvm_targets_${cross_llvm_target}" || \ die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling" fi - use system-bootstrap && rust_pkg_setup + rust_pkg_setup if use system-llvm; then llvm-r1_pkg_setup @@ -229,33 +221,7 @@ pkg_setup() { fi } -esetup_unwind_hack() { - # https://bugs.gentoo.org/870280 - # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system. - # it should trigger for internal bootstrap or system-bootstrap with rust-bin. - # the whole idea is for stage0 to bootstrap with fake libgcc_s. - # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler. - local fakelib="${T}/fakelib" - mkdir -p "${fakelib}" || die - # we need both symlinks, one for cargo runtime, other for linker. - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die - ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die - export LD_LIBRARY_PATH="${fakelib}" - export RUSTFLAGS+=" -L${fakelib}" - # this is a literally magic variable that gets through cargo cache, without it some - # crates ignore RUSTFLAGS. - # this variable can not contain leading space. - export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}" -} - src_prepare() { - # Clear vendor checksums for crates that we patched to bump libc. - # NOTE: refresh this on each bump. - #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \ - # terminal_size tracing-tree; do - # clear_vendor_checksums "${i}" - #done - # Rust baselines to Pentium4 on x86, this patch lowers the baseline to i586 when sse2 is not set. if use x86; then if ! use cpu_flags_x86_sse2; then @@ -264,15 +230,6 @@ src_prepare() { fi fi - if ! use system-bootstrap; then - has_version sys-devel/gcc || esetup_unwind_hack - local rust_stage0_root="${WORKDIR}"/rust-stage0 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ - --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die - fi - default } @@ -303,14 +260,7 @@ src_configure() { use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' use rust-src && tools+=',"src"' - local rust_stage0_root - if use system-bootstrap; then - local printsysroot - printsysroot="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" - rust_stage0_root="${printsysroot}" - else - rust_stage0_root="${WORKDIR}"/rust-stage0 - fi + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" # in case of prefix it will be already prefixed, as --print sysroot returns full path [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"