commit:     e04826591046b92f5a3fcd2f1d0f31c42f78b2d2
Author:     blackteahamburger <blackteahamburger <AT> outlook <DOT> com>
AuthorDate: Sun Mar 30 07:51:13 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Apr 20 08:00:21 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e0482659

dev-lang/rust: allow building with mold

Closes: https://bugs.gentoo.org/952925
Signed-off-by: blackteahamburger <blackteahamburger <AT> outlook.com>
Closes: https://github.com/gentoo/gentoo/pull/41387
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-lang/rust/rust-1.84.0-r1.ebuild | 11 ++++++++---
 dev-lang/rust/rust-1.84.1-r1.ebuild | 11 ++++++++---
 dev-lang/rust/rust-1.85.0-r1.ebuild | 11 ++++++++---
 dev-lang/rust/rust-1.85.0.ebuild    | 11 ++++++++---
 dev-lang/rust/rust-1.85.1.ebuild    | 11 ++++++++---
 dev-lang/rust/rust-1.86.0-r1.ebuild | 11 ++++++++---
 dev-lang/rust/rust-9999.ebuild      | 11 ++++++++---
 7 files changed, 56 insertions(+), 21 deletions(-)

diff --git a/dev-lang/rust/rust-1.84.0-r1.ebuild 
b/dev-lang/rust/rust-1.84.0-r1.ebuild
index 2afcbad6227d..2f7c5664f3e4 100644
--- a/dev-lang/rust/rust-1.84.0-r1.ebuild
+++ b/dev-lang/rust/rust-1.84.0-r1.ebuild
@@ -68,7 +68,12 @@ BDEPEND="${PYTHON_DEPS}
                >=sys-devel/gcc-4.7[cxx]
                >=llvm-core/clang-3.5
        )
-       lto? ( system-llvm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') ) )
+       lto? ( system-llvm? (
+               || (
+                       $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}')
+                       sys-devel/mold
+               )
+       ) )
        !system-llvm? (
                >=dev-build/cmake-3.13.4
                app-alternatives/ninja
@@ -235,7 +240,7 @@ src_prepare() {
                fi
        fi
 
-       if use lto && tc-is-clang && ! tc-ld-is-lld; then
+       if use lto && tc-is-clang && ! tc-ld-is-lld && ! tc-ld-is-mold; then
                export RUSTFLAGS+=" -C link-arg=-fuse-ld=lld"
        fi
 
@@ -391,7 +396,7 @@ src_configure() {
                dist-src = false
                remap-debuginfo = true
                lld = $(usex system-llvm false $(toml_usex wasm))
-               $(if use lto && tc-is-clang ; then
+               $(if use lto && tc-is-clang && ! tc-ld-is-mold; then
                        echo "use-lld = true"
                fi)
                # only deny warnings if doc+wasm are NOT requested, documenting 
stage0 wasm std fails without it

diff --git a/dev-lang/rust/rust-1.84.1-r1.ebuild 
b/dev-lang/rust/rust-1.84.1-r1.ebuild
index c98855304342..42a9b6dd7222 100644
--- a/dev-lang/rust/rust-1.84.1-r1.ebuild
+++ b/dev-lang/rust/rust-1.84.1-r1.ebuild
@@ -68,7 +68,12 @@ BDEPEND="${PYTHON_DEPS}
                >=sys-devel/gcc-4.7[cxx]
                >=llvm-core/clang-3.5
        )
-       lto? ( system-llvm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') ) )
+       lto? ( system-llvm? (
+               || (
+                       $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}')
+                       sys-devel/mold
+               )
+       ) )
        !system-llvm? (
                >=dev-build/cmake-3.13.4
                app-alternatives/ninja
@@ -235,7 +240,7 @@ src_prepare() {
                fi
        fi
 
-       if use lto && tc-is-clang && ! tc-ld-is-lld; then
+       if use lto && tc-is-clang && ! tc-ld-is-lld && ! tc-ld-is-mold; then
                export RUSTFLAGS+=" -C link-arg=-fuse-ld=lld"
        fi
 
@@ -391,7 +396,7 @@ src_configure() {
                dist-src = false
                remap-debuginfo = true
                lld = $(usex system-llvm false $(toml_usex wasm))
-               $(if use lto && tc-is-clang ; then
+               $(if use lto && tc-is-clang && ! tc-ld-is-mold; then
                        echo "use-lld = true"
                fi)
                # only deny warnings if doc+wasm are NOT requested, documenting 
stage0 wasm std fails without it

diff --git a/dev-lang/rust/rust-1.85.0-r1.ebuild 
b/dev-lang/rust/rust-1.85.0-r1.ebuild
index 87c6951a5371..5106720d515c 100644
--- a/dev-lang/rust/rust-1.85.0-r1.ebuild
+++ b/dev-lang/rust/rust-1.85.0-r1.ebuild
@@ -94,7 +94,12 @@ BDEPEND="${PYTHON_DEPS}
                >=sys-devel/gcc-4.7[cxx]
                >=llvm-core/clang-3.5
        )
-       lto? ( system-llvm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') ) )
+       lto? ( system-llvm? (
+               || (
+                       $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}')
+                       sys-devel/mold
+               )
+       ) )
        !system-llvm? (
                >=dev-build/cmake-3.13.4
                app-alternatives/ninja
@@ -307,7 +312,7 @@ src_prepare() {
                fi
        fi
 
-       if use lto && tc-is-clang && ! tc-ld-is-lld; then
+       if use lto && tc-is-clang && ! tc-ld-is-lld && ! tc-ld-is-mold; then
                export RUSTFLAGS+=" -C link-arg=-fuse-ld=lld"
        fi
 
@@ -478,7 +483,7 @@ src_configure() {
                dist-src = false
                remap-debuginfo = true
                lld = $(usex system-llvm false $(toml_usex wasm))
-               $(if use lto && tc-is-clang ; then
+               $(if use lto && tc-is-clang && ! tc-ld-is-mold; then
                        echo "use-lld = true"
                fi)
                # only deny warnings if doc+wasm are NOT requested, documenting 
stage0 wasm std fails without it

diff --git a/dev-lang/rust/rust-1.85.0.ebuild b/dev-lang/rust/rust-1.85.0.ebuild
index cdcb5e650413..11784aed91a5 100644
--- a/dev-lang/rust/rust-1.85.0.ebuild
+++ b/dev-lang/rust/rust-1.85.0.ebuild
@@ -94,7 +94,12 @@ BDEPEND="${PYTHON_DEPS}
                >=sys-devel/gcc-4.7[cxx]
                >=llvm-core/clang-3.5
        )
-       lto? ( system-llvm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') ) )
+       lto? ( system-llvm? (
+               || (
+                       $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}')
+                       sys-devel/mold
+               )
+       ) )
        !system-llvm? (
                >=dev-build/cmake-3.13.4
                app-alternatives/ninja
@@ -306,7 +311,7 @@ src_prepare() {
                fi
        fi
 
-       if use lto && tc-is-clang && ! tc-ld-is-lld; then
+       if use lto && tc-is-clang && ! tc-ld-is-lld && ! tc-ld-is-mold; then
                export RUSTFLAGS+=" -C link-arg=-fuse-ld=lld"
        fi
 
@@ -477,7 +482,7 @@ src_configure() {
                dist-src = false
                remap-debuginfo = true
                lld = $(usex system-llvm false $(toml_usex wasm))
-               $(if use lto && tc-is-clang ; then
+               $(if use lto && tc-is-clang && ! tc-ld-is-mold; then
                        echo "use-lld = true"
                fi)
                # only deny warnings if doc+wasm are NOT requested, documenting 
stage0 wasm std fails without it

diff --git a/dev-lang/rust/rust-1.85.1.ebuild b/dev-lang/rust/rust-1.85.1.ebuild
index 9b72f12ce71a..5b1296ec9547 100644
--- a/dev-lang/rust/rust-1.85.1.ebuild
+++ b/dev-lang/rust/rust-1.85.1.ebuild
@@ -94,7 +94,12 @@ BDEPEND="${PYTHON_DEPS}
                >=sys-devel/gcc-4.7[cxx]
                >=llvm-core/clang-3.5
        )
-       lto? ( system-llvm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') ) )
+       lto? ( system-llvm? (
+               || (
+                       $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}')
+                       sys-devel/mold
+               )
+       ) )
        !system-llvm? (
                >=dev-build/cmake-3.13.4
                app-alternatives/ninja
@@ -307,7 +312,7 @@ src_prepare() {
                fi
        fi
 
-       if use lto && tc-is-clang && ! tc-ld-is-lld; then
+       if use lto && tc-is-clang && ! tc-ld-is-lld && ! tc-ld-is-mold; then
                export RUSTFLAGS+=" -C link-arg=-fuse-ld=lld"
        fi
 
@@ -478,7 +483,7 @@ src_configure() {
                dist-src = false
                remap-debuginfo = true
                lld = $(usex system-llvm false $(toml_usex wasm))
-               $(if use lto && tc-is-clang ; then
+               $(if use lto && tc-is-clang && ! tc-ld-is-mold; then
                        echo "use-lld = true"
                fi)
                # only deny warnings if doc+wasm are NOT requested, documenting 
stage0 wasm std fails without it

diff --git a/dev-lang/rust/rust-1.86.0-r1.ebuild 
b/dev-lang/rust/rust-1.86.0-r1.ebuild
index a5a82e00ca6a..d949d33bb194 100644
--- a/dev-lang/rust/rust-1.86.0-r1.ebuild
+++ b/dev-lang/rust/rust-1.86.0-r1.ebuild
@@ -94,7 +94,12 @@ BDEPEND="${PYTHON_DEPS}
                >=sys-devel/gcc-4.7[cxx]
                >=llvm-core/clang-3.5
        )
-       lto? ( system-llvm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') ) )
+       lto? ( system-llvm? (
+               || (
+                       $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}')
+                       sys-devel/mold
+               )
+       ) )
        !system-llvm? (
                >=dev-build/cmake-3.13.4
                app-alternatives/ninja
@@ -307,7 +312,7 @@ src_prepare() {
                fi
        fi
 
-       if use lto && tc-is-clang && ! tc-ld-is-lld; then
+       if use lto && tc-is-clang && ! tc-ld-is-lld && ! tc-ld-is-mold; then
                export RUSTFLAGS+=" -C link-arg=-fuse-ld=lld"
        fi
 
@@ -478,7 +483,7 @@ src_configure() {
                dist-src = false
                remap-debuginfo = true
                lld = $(usex system-llvm false $(toml_usex wasm))
-               $(if use lto && tc-is-clang ; then
+               $(if use lto && tc-is-clang && ! tc-ld-is-mold; then
                        echo "use-lld = true"
                fi)
                # only deny warnings if doc+wasm are NOT requested, documenting 
stage0 wasm std fails without it

diff --git a/dev-lang/rust/rust-9999.ebuild b/dev-lang/rust/rust-9999.ebuild
index 39292c5cb886..bdaabbaded52 100644
--- a/dev-lang/rust/rust-9999.ebuild
+++ b/dev-lang/rust/rust-9999.ebuild
@@ -94,7 +94,12 @@ BDEPEND="${PYTHON_DEPS}
                >=sys-devel/gcc-4.7[cxx]
                >=llvm-core/clang-3.5
        )
-       lto? ( system-llvm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') ) )
+       lto? ( system-llvm? (
+               || (
+                       $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}')
+                       sys-devel/mold
+               )
+       ) )
        !system-llvm? (
                >=dev-build/cmake-3.13.4
                app-alternatives/ninja
@@ -307,7 +312,7 @@ src_prepare() {
                fi
        fi
 
-       if use lto && tc-is-clang && ! tc-ld-is-lld; then
+       if use lto && tc-is-clang && ! tc-ld-is-lld && ! tc-ld-is-mold; then
                export RUSTFLAGS+=" -C link-arg=-fuse-ld=lld"
        fi
 
@@ -479,7 +484,7 @@ src_configure() {
                dist-src = false
                remap-debuginfo = true
                lld = $(usex system-llvm false $(toml_usex wasm))
-               $(if use lto && tc-is-clang ; then
+               $(if use lto && tc-is-clang && ! tc-ld-is-mold; then
                        echo "use-lld = true"
                fi)
                # only deny warnings if doc+wasm are NOT requested, documenting 
stage0 wasm std fails without it

Reply via email to