commit:     3d841904ebfe01e74cb01eae6456b30f6aeca7e8
Author:     Z. Liu <zhixu.liu <AT> gmail <DOT> com>
AuthorDate: Sun Dec  8 07:59:37 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jan 18 17:31:54 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3d841904

dev-lang/rust: set experimental-targets according to USE

set experimental-targets to the intersection of USE and all experimental
targets, otherwise it will fails to build with messages like:

  The target `......' is experimental and must be passed via
  LLVM_EXPERIMENTAL_TARGETS_TO_BUILD.

Closes: https://bugs.gentoo.org/921683
Closes: https://bugs.gentoo.org/923066
Closes: https://bugs.gentoo.org/930921
Signed-off-by: Z. Liu <zhixu.liu <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/38378
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-lang/rust/rust-1.71.1-r100.ebuild | 12 +++++++++++-
 dev-lang/rust/rust-1.74.1-r100.ebuild | 12 +++++++++++-
 dev-lang/rust/rust-1.75.0-r100.ebuild | 12 +++++++++++-
 dev-lang/rust/rust-1.76.0-r100.ebuild | 12 +++++++++++-
 dev-lang/rust/rust-1.77.1-r100.ebuild | 12 +++++++++++-
 dev-lang/rust/rust-1.78.0-r100.ebuild | 12 +++++++++++-
 dev-lang/rust/rust-1.79.0-r100.ebuild | 12 +++++++++++-
 dev-lang/rust/rust-1.80.1-r100.ebuild | 12 +++++++++++-
 dev-lang/rust/rust-1.81.0-r100.ebuild | 12 +++++++++++-
 dev-lang/rust/rust-1.82.0-r100.ebuild | 12 +++++++++++-
 dev-lang/rust/rust-1.82.0-r101.ebuild | 12 +++++++++++-
 dev-lang/rust/rust-1.83.0-r1.ebuild   | 12 +++++++++++-
 12 files changed, 132 insertions(+), 12 deletions(-)

diff --git a/dev-lang/rust/rust-1.71.1-r100.ebuild 
b/dev-lang/rust/rust-1.71.1-r100.ebuild
index 6193d3d771e8..dedaab4fcbad 100644
--- a/dev-lang/rust/rust-1.71.1-r100.ebuild
+++ b/dev-lang/rust/rust-1.71.1-r100.ebuild
@@ -38,6 +38,8 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai 
LoongArch Mips MSP43
 ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
 LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
 
+ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa )
+
 LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA"
 SLOT="${PV}"
 
@@ -237,6 +239,14 @@ src_configure() {
 
        rust_target="$(rust_abi)"
 
+       LLVM_EXPERIMENTAL_TARGETS=()
+       for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do
+               if use llvm_targets_${_x} ; then
+                       LLVM_EXPERIMENTAL_TARGETS+=( ${_x} )
+               fi
+       done
+       LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]}
+
        local cm_btype="$(usex debug DEBUG RELEASE)"
        cat <<- _EOF_ > "${S}"/config.toml
                changelog-seen = 2
@@ -247,7 +257,7 @@ src_configure() {
                assertions = $(toml_usex debug)
                ninja = true
                targets = "${LLVM_TARGETS// /;}"
-               experimental-targets = ""
+               experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}"
                link-shared = $(toml_usex system-llvm)
                $(if is_libcxx_linked; then
                        # https://bugs.gentoo.org/732632

diff --git a/dev-lang/rust/rust-1.74.1-r100.ebuild 
b/dev-lang/rust/rust-1.74.1-r100.ebuild
index 3fe183405a84..95bdb5effa4e 100644
--- a/dev-lang/rust/rust-1.74.1-r100.ebuild
+++ b/dev-lang/rust/rust-1.74.1-r100.ebuild
@@ -40,6 +40,8 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY 
DirectX Hexagon Lanai
 ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
 LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
 
+ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa )
+
 LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
 SLOT="${PV}"
 
@@ -259,6 +261,14 @@ src_configure() {
        rust_build="$(rust_abi "${CBUILD}")"
        rust_host="$(rust_abi "${CHOST}")"
 
+       LLVM_EXPERIMENTAL_TARGETS=()
+       for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do
+               if use llvm_targets_${_x} ; then
+                       LLVM_EXPERIMENTAL_TARGETS+=( ${_x} )
+               fi
+       done
+       LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]}
+
        local cm_btype="$(usex debug DEBUG RELEASE)"
        cat <<- _EOF_ > "${S}"/config.toml
                changelog-seen = 2
@@ -269,7 +279,7 @@ src_configure() {
                assertions = $(toml_usex debug)
                ninja = true
                targets = "${LLVM_TARGETS// /;}"
-               experimental-targets = ""
+               experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}"
                link-shared = $(toml_usex system-llvm)
                $(if is_libcxx_linked; then
                        # https://bugs.gentoo.org/732632

diff --git a/dev-lang/rust/rust-1.75.0-r100.ebuild 
b/dev-lang/rust/rust-1.75.0-r100.ebuild
index 32f8d4d41fe3..478f58c567f0 100644
--- a/dev-lang/rust/rust-1.75.0-r100.ebuild
+++ b/dev-lang/rust/rust-1.75.0-r100.ebuild
@@ -39,6 +39,8 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY 
DirectX Hexagon Lanai
 ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
 LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
 
+ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa )
+
 LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
 SLOT="${PV}"
 
@@ -261,6 +263,14 @@ src_configure() {
        rust_build="$(rust_abi "${CBUILD}")"
        rust_host="$(rust_abi "${CHOST}")"
 
+       LLVM_EXPERIMENTAL_TARGETS=()
+       for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do
+               if use llvm_targets_${_x} ; then
+                       LLVM_EXPERIMENTAL_TARGETS+=( ${_x} )
+               fi
+       done
+       LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]}
+
        local cm_btype="$(usex debug DEBUG RELEASE)"
        cat <<- _EOF_ > "${S}"/config.toml
                changelog-seen = 2
@@ -271,7 +281,7 @@ src_configure() {
                assertions = $(toml_usex debug)
                ninja = true
                targets = "${LLVM_TARGETS// /;}"
-               experimental-targets = ""
+               experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}"
                link-shared = $(toml_usex system-llvm)
                $(if is_libcxx_linked; then
                        # https://bugs.gentoo.org/732632

diff --git a/dev-lang/rust/rust-1.76.0-r100.ebuild 
b/dev-lang/rust/rust-1.76.0-r100.ebuild
index 04b921cbf7e5..364d59bed5b6 100644
--- a/dev-lang/rust/rust-1.76.0-r100.ebuild
+++ b/dev-lang/rust/rust-1.76.0-r100.ebuild
@@ -39,6 +39,8 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY 
DirectX Hexagon Lanai
 ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
 LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
 
+ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa )
+
 LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
 SLOT="${PV}"
 
@@ -260,6 +262,14 @@ src_configure() {
        rust_build="$(rust_abi "${CBUILD}")"
        rust_host="$(rust_abi "${CHOST}")"
 
+       LLVM_EXPERIMENTAL_TARGETS=()
+       for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do
+               if use llvm_targets_${_x} ; then
+                       LLVM_EXPERIMENTAL_TARGETS+=( ${_x} )
+               fi
+       done
+       LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]}
+
        local cm_btype="$(usex debug DEBUG RELEASE)"
        cat <<- _EOF_ > "${S}"/config.toml
                changelog-seen = 2
@@ -270,7 +280,7 @@ src_configure() {
                assertions = $(toml_usex debug)
                ninja = true
                targets = "${LLVM_TARGETS// /;}"
-               experimental-targets = ""
+               experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}"
                link-shared = $(toml_usex system-llvm)
                $(if is_libcxx_linked; then
                        # https://bugs.gentoo.org/732632

diff --git a/dev-lang/rust/rust-1.77.1-r100.ebuild 
b/dev-lang/rust/rust-1.77.1-r100.ebuild
index 1a86dda8a2ea..5461a2a6b93e 100644
--- a/dev-lang/rust/rust-1.77.1-r100.ebuild
+++ b/dev-lang/rust/rust-1.77.1-r100.ebuild
@@ -39,6 +39,8 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY 
DirectX Hexagon Lanai
 ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
 LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
 
+ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa )
+
 LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
 SLOT="${PV}"
 
@@ -259,6 +261,14 @@ src_configure() {
        rust_build="$(rust_abi "${CBUILD}")"
        rust_host="$(rust_abi "${CHOST}")"
 
+       LLVM_EXPERIMENTAL_TARGETS=()
+       for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do
+               if use llvm_targets_${_x} ; then
+                       LLVM_EXPERIMENTAL_TARGETS+=( ${_x} )
+               fi
+       done
+       LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]}
+
        local cm_btype="$(usex debug DEBUG RELEASE)"
        cat <<- _EOF_ > "${S}"/config.toml
                changelog-seen = 2
@@ -269,7 +279,7 @@ src_configure() {
                assertions = $(toml_usex debug)
                ninja = true
                targets = "${LLVM_TARGETS// /;}"
-               experimental-targets = ""
+               experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}"
                link-shared = $(toml_usex system-llvm)
                $(if is_libcxx_linked; then
                        # https://bugs.gentoo.org/732632

diff --git a/dev-lang/rust/rust-1.78.0-r100.ebuild 
b/dev-lang/rust/rust-1.78.0-r100.ebuild
index feaca456180b..19a64890ab0b 100644
--- a/dev-lang/rust/rust-1.78.0-r100.ebuild
+++ b/dev-lang/rust/rust-1.78.0-r100.ebuild
@@ -39,6 +39,8 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY 
DirectX Hexagon Lanai
 ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
 LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
 
+ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa )
+
 LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
 SLOT="${PV}"
 
@@ -259,6 +261,14 @@ src_configure() {
        rust_build="$(rust_abi "${CBUILD}")"
        rust_host="$(rust_abi "${CHOST}")"
 
+       LLVM_EXPERIMENTAL_TARGETS=()
+       for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do
+               if use llvm_targets_${_x} ; then
+                       LLVM_EXPERIMENTAL_TARGETS+=( ${_x} )
+               fi
+       done
+       LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]}
+
        local cm_btype="$(usex debug DEBUG RELEASE)"
        cat <<- _EOF_ > "${S}"/config.toml
                [llvm]
@@ -268,7 +278,7 @@ src_configure() {
                assertions = $(toml_usex debug)
                ninja = true
                targets = "${LLVM_TARGETS// /;}"
-               experimental-targets = ""
+               experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}"
                link-shared = $(toml_usex system-llvm)
                $(if is_libcxx_linked; then
                        # https://bugs.gentoo.org/732632

diff --git a/dev-lang/rust/rust-1.79.0-r100.ebuild 
b/dev-lang/rust/rust-1.79.0-r100.ebuild
index feaca456180b..19a64890ab0b 100644
--- a/dev-lang/rust/rust-1.79.0-r100.ebuild
+++ b/dev-lang/rust/rust-1.79.0-r100.ebuild
@@ -39,6 +39,8 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY 
DirectX Hexagon Lanai
 ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
 LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
 
+ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa )
+
 LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
 SLOT="${PV}"
 
@@ -259,6 +261,14 @@ src_configure() {
        rust_build="$(rust_abi "${CBUILD}")"
        rust_host="$(rust_abi "${CHOST}")"
 
+       LLVM_EXPERIMENTAL_TARGETS=()
+       for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do
+               if use llvm_targets_${_x} ; then
+                       LLVM_EXPERIMENTAL_TARGETS+=( ${_x} )
+               fi
+       done
+       LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]}
+
        local cm_btype="$(usex debug DEBUG RELEASE)"
        cat <<- _EOF_ > "${S}"/config.toml
                [llvm]
@@ -268,7 +278,7 @@ src_configure() {
                assertions = $(toml_usex debug)
                ninja = true
                targets = "${LLVM_TARGETS// /;}"
-               experimental-targets = ""
+               experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}"
                link-shared = $(toml_usex system-llvm)
                $(if is_libcxx_linked; then
                        # https://bugs.gentoo.org/732632

diff --git a/dev-lang/rust/rust-1.80.1-r100.ebuild 
b/dev-lang/rust/rust-1.80.1-r100.ebuild
index 6e2454510ddc..fb5eef4568b5 100644
--- a/dev-lang/rust/rust-1.80.1-r100.ebuild
+++ b/dev-lang/rust/rust-1.80.1-r100.ebuild
@@ -39,6 +39,8 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY 
DirectX Hexagon Lanai
 ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
 LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
 
+ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa )
+
 LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
 SLOT="${PV}"
 
@@ -258,6 +260,14 @@ src_configure() {
        rust_build="$(rust_abi "${CBUILD}")"
        rust_host="$(rust_abi "${CHOST}")"
 
+       LLVM_EXPERIMENTAL_TARGETS=()
+       for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do
+               if use llvm_targets_${_x} ; then
+                       LLVM_EXPERIMENTAL_TARGETS+=( ${_x} )
+               fi
+       done
+       LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]}
+
        local cm_btype="$(usex debug DEBUG RELEASE)"
        cat <<- _EOF_ > "${S}"/config.toml
                [llvm]
@@ -267,7 +277,7 @@ src_configure() {
                assertions = $(toml_usex debug)
                ninja = true
                targets = "${LLVM_TARGETS// /;}"
-               experimental-targets = ""
+               experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}"
                link-shared = $(toml_usex system-llvm)
                $(if is_libcxx_linked; then
                        # https://bugs.gentoo.org/732632

diff --git a/dev-lang/rust/rust-1.81.0-r100.ebuild 
b/dev-lang/rust/rust-1.81.0-r100.ebuild
index 5b0447c1e997..93dfa988757c 100644
--- a/dev-lang/rust/rust-1.81.0-r100.ebuild
+++ b/dev-lang/rust/rust-1.81.0-r100.ebuild
@@ -40,6 +40,8 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY 
DirectX Hexagon Lanai
 ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
 LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
 
+ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa )
+
 LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
 SLOT="${PV}"
 
@@ -262,6 +264,14 @@ src_configure() {
        rust_build="$(rust_abi "${CBUILD}")"
        rust_host="$(rust_abi "${CHOST}")"
 
+       LLVM_EXPERIMENTAL_TARGETS=()
+       for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do
+               if use llvm_targets_${_x} ; then
+                       LLVM_EXPERIMENTAL_TARGETS+=( ${_x} )
+               fi
+       done
+       LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]}
+
        local cm_btype="$(usex debug DEBUG RELEASE)"
        cat <<- _EOF_ > "${S}"/config.toml
                [llvm]
@@ -271,7 +281,7 @@ src_configure() {
                assertions = $(toml_usex debug)
                ninja = true
                targets = "${LLVM_TARGETS// /;}"
-               experimental-targets = ""
+               experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}"
                link-shared = $(toml_usex system-llvm)
                $(if is_libcxx_linked; then
                        # https://bugs.gentoo.org/732632

diff --git a/dev-lang/rust/rust-1.82.0-r100.ebuild 
b/dev-lang/rust/rust-1.82.0-r100.ebuild
index eca2deabe012..25fbe716b6a7 100644
--- a/dev-lang/rust/rust-1.82.0-r100.ebuild
+++ b/dev-lang/rust/rust-1.82.0-r100.ebuild
@@ -39,6 +39,8 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY 
DirectX Hexagon Lanai
 ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
 LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
 
+ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa )
+
 LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
 SLOT="${PV}"
 
@@ -269,6 +271,14 @@ src_configure() {
        rust_build="$(rust_abi "${CBUILD}")"
        rust_host="$(rust_abi "${CHOST}")"
 
+       LLVM_EXPERIMENTAL_TARGETS=()
+       for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do
+               if use llvm_targets_${_x} ; then
+                       LLVM_EXPERIMENTAL_TARGETS+=( ${_x} )
+               fi
+       done
+       LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]}
+
        local cm_btype="$(usex debug DEBUG RELEASE)"
        cat <<- _EOF_ > "${S}"/config.toml
                [llvm]
@@ -278,7 +288,7 @@ src_configure() {
                assertions = $(toml_usex debug)
                ninja = true
                targets = "${LLVM_TARGETS// /;}"
-               experimental-targets = ""
+               experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}"
                link-shared = $(toml_usex system-llvm)
                $(if is_libcxx_linked; then
                        # https://bugs.gentoo.org/732632

diff --git a/dev-lang/rust/rust-1.82.0-r101.ebuild 
b/dev-lang/rust/rust-1.82.0-r101.ebuild
index 84788dff3186..1f70f958d492 100644
--- a/dev-lang/rust/rust-1.82.0-r101.ebuild
+++ b/dev-lang/rust/rust-1.82.0-r101.ebuild
@@ -39,6 +39,8 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY 
DirectX Hexagon Lanai
 ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
 LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
 
+ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa )
+
 LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
 SLOT="${PV}"
 
@@ -270,6 +272,14 @@ src_configure() {
        rust_build="$(rust_abi "${CBUILD}")"
        rust_host="$(rust_abi "${CHOST}")"
 
+       LLVM_EXPERIMENTAL_TARGETS=()
+       for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do
+               if use llvm_targets_${_x} ; then
+                       LLVM_EXPERIMENTAL_TARGETS+=( ${_x} )
+               fi
+       done
+       LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]}
+
        local cm_btype="$(usex debug DEBUG RELEASE)"
        cat <<- _EOF_ > "${S}"/config.toml
                [llvm]
@@ -279,7 +289,7 @@ src_configure() {
                assertions = $(toml_usex debug)
                ninja = true
                targets = "${LLVM_TARGETS// /;}"
-               experimental-targets = ""
+               experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}"
                link-shared = $(toml_usex system-llvm)
                $(if is_libcxx_linked; then
                        # https://bugs.gentoo.org/732632

diff --git a/dev-lang/rust/rust-1.83.0-r1.ebuild 
b/dev-lang/rust/rust-1.83.0-r1.ebuild
index d29242495cff..2262915b0d62 100644
--- a/dev-lang/rust/rust-1.83.0-r1.ebuild
+++ b/dev-lang/rust/rust-1.83.0-r1.ebuild
@@ -39,6 +39,8 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY 
DirectX Hexagon Lanai
 ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
 LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
 
+ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa )
+
 LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
 SLOT="${PV}"
 
@@ -270,6 +272,14 @@ src_configure() {
        rust_build="$(rust_abi "${CBUILD}")"
        rust_host="$(rust_abi "${CHOST}")"
 
+       LLVM_EXPERIMENTAL_TARGETS=()
+       for _x in "${ALL_LLVM_EXPERIMENTAL_TARGETS[@]}"; do
+               if use llvm_targets_${_x} ; then
+                       LLVM_EXPERIMENTAL_TARGETS+=( ${_x} )
+               fi
+       done
+       LLVM_EXPERIMENTAL_TARGETS=${LLVM_EXPERIMENTAL_TARGETS[@]}
+
        local cm_btype="$(usex debug DEBUG RELEASE)"
        cat <<- _EOF_ > "${S}"/config.toml
                [llvm]
@@ -279,7 +289,7 @@ src_configure() {
                assertions = $(toml_usex debug)
                ninja = true
                targets = "${LLVM_TARGETS// /;}"
-               experimental-targets = ""
+               experimental-targets = "${LLVM_EXPERIMENTAL_TARGETS// /;}"
                link-shared = $(toml_usex system-llvm)
                $(if is_libcxx_linked; then
                        # https://bugs.gentoo.org/732632

Reply via email to