commit:     9ebc15021d020f41c9960ae8774ae16e24d2ed97
Author:     Paul Zander <negril.nx+gentoo <AT> gmail <DOT> com>
AuthorDate: Thu May 22 11:47:34 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu May 22 16:07:12 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9ebc1502

dev-util/nvidia-cuda-toolkit: add clang useflag to force specific compiler

The at-least-one-of dependency on clang or gcc allowed the PM to depclean one of
them. If e.g. clang is installed via LLVM_SLOT it allows older gcc to be
depcleaned even if it is the system compiler. Causing the hostcompiler lookup to
fail.

Bug: https://bugs.gentoo.org/956046
Signed-off-by: Paul Zander <negril.nx+gentoo <AT> gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/42202
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-util/nvidia-cuda-toolkit/metadata.xml                           | 1 +
 ...a-toolkit-12.6.3.ebuild => nvidia-cuda-toolkit-12.6.3-r1.ebuild} | 6 ++++--
 ...a-toolkit-12.8.1.ebuild => nvidia-cuda-toolkit-12.8.1-r1.ebuild} | 6 ++++--
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/dev-util/nvidia-cuda-toolkit/metadata.xml 
b/dev-util/nvidia-cuda-toolkit/metadata.xml
index ae4d40199441..b28664c8dab7 100644
--- a/dev-util/nvidia-cuda-toolkit/metadata.xml
+++ b/dev-util/nvidia-cuda-toolkit/metadata.xml
@@ -6,6 +6,7 @@
                <name>Gentoo Science Project</name>
        </maintainer>
        <use>
+               <flag name="clang">Depend on <pkg>llvm-core/clang</pkg> as host 
compiler</flag>
                <flag name="debugger">Install the CUDA debugger</flag>
                <flag name="nsight">Install profiling and optimizing tools 
(nsight-compute, nsight-systems)</flag>
                <flag name="profiler">Install the NVIDIA CUDA profiler (nvprof) 
and the related libraries</flag>

diff --git a/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.6.3.ebuild 
b/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.6.3-r1.ebuild
similarity index 99%
rename from dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.6.3.ebuild
rename to dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.6.3-r1.ebuild
index d2845a65dcaf..8415006bd0fa 100644
--- a/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.6.3.ebuild
+++ b/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.6.3-r1.ebuild
@@ -31,7 +31,7 @@ SLOT="0/${PV}" # UNSLOTTED
 # SLOT="${PV}" # SLOTTED
 
 KEYWORDS="-* ~amd64 ~arm64 ~amd64-linux ~arm64-linux"
-IUSE="debugger examples profiler rdma sanitizer"
+IUSE="clang debugger examples profiler rdma sanitizer"
 RESTRICT="bindist mirror strip test"
 
 REQUIRED_USE="${PYTHON_REQUIRED_USE}"
@@ -39,8 +39,10 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}"
 # since CUDA 11, the bundled toolkit driver (== ${DRIVER_PV}) and the
 # actual required minimum driver version are different.
 RDEPEND="
-       || (
+       !clang? (
                <sys-devel/gcc-$(( GCC_MAX_VER + 1 ))_pre[cxx]
+       )
+       clang? (
                <llvm-core/clang-$(( CLANG_MAX_VER + 1 ))_pre
        )
        sys-process/numactl

diff --git a/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.8.1.ebuild 
b/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.8.1-r1.ebuild
similarity index 99%
rename from dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.8.1.ebuild
rename to dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.8.1-r1.ebuild
index 46414fa97bec..8e3639e189f3 100644
--- a/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.8.1.ebuild
+++ b/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.8.1-r1.ebuild
@@ -31,7 +31,7 @@ SLOT="0/${PV}" # UNSLOTTED
 # SLOT="${PV}" # SLOTTED
 
 KEYWORDS="-* ~amd64 ~arm64 ~amd64-linux ~arm64-linux"
-IUSE="debugger examples profiler rdma sanitizer"
+IUSE="clang debugger examples profiler rdma sanitizer"
 RESTRICT="bindist mirror strip test"
 
 REQUIRED_USE="${PYTHON_REQUIRED_USE}"
@@ -39,8 +39,10 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}"
 # since CUDA 11, the bundled toolkit driver (== ${DRIVER_PV}) and the
 # actual required minimum driver version are different.
 RDEPEND="
-       || (
+       !clang? (
                <sys-devel/gcc-$(( GCC_MAX_VER + 1 ))_pre[cxx]
+       )
+       clang? (
                <llvm-core/clang-$(( CLANG_MAX_VER + 1 ))_pre
        )
        sys-process/numactl

Reply via email to