From 2b88f826467e0a5661bfbef82e986188db490665 Mon Sep 17 00:00:00 2001 From: saundersp Date: Fri, 25 Jul 2025 17:30:34 +0200 Subject: [PATCH] Replaced dev-util/nvidia-cuda-toolkit-12.9.1 with gentoo's official version --- dev-util/nvidia-cuda-toolkit/Manifest | 7 - .../nvidia-cuda-toolkit/files/cuda-config.in | 28 -- .../nvidia-cuda-toolkit-glibc-2.41-r1.patch | 119 ------ .../files/parse_manifest.py | 223 ---------- dev-util/nvidia-cuda-toolkit/metadata.xml | 17 - .../nvidia-cuda-toolkit-12.9.1.ebuild | 382 ------------------ .../dev-util/nvidia-cuda-toolkit-12.9.1 | 16 - 7 files changed, 792 deletions(-) delete mode 100644 dev-util/nvidia-cuda-toolkit/Manifest delete mode 100644 dev-util/nvidia-cuda-toolkit/files/cuda-config.in delete mode 100644 dev-util/nvidia-cuda-toolkit/files/nvidia-cuda-toolkit-glibc-2.41-r1.patch delete mode 100644 dev-util/nvidia-cuda-toolkit/files/parse_manifest.py delete mode 100644 dev-util/nvidia-cuda-toolkit/metadata.xml delete mode 100644 dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.9.1.ebuild delete mode 100644 metadata/md5-cache/dev-util/nvidia-cuda-toolkit-12.9.1 diff --git a/dev-util/nvidia-cuda-toolkit/Manifest b/dev-util/nvidia-cuda-toolkit/Manifest deleted file mode 100644 index 29279f8..0000000 --- a/dev-util/nvidia-cuda-toolkit/Manifest +++ /dev/null @@ -1,7 +0,0 @@ -AUX cuda-config.in 407 BLAKE2B 5f7a0d50d774db58c180b767f00bead7c7dbf5f6b3b4a2f960dfc3b8450f7abf5c2b67c6620c5318f1331646dd2003d61c70a4c31359efd16ff418ecc9d0b446 SHA512 363903b999c43a47a48c52e8898c6044fadcc66d259338ee22863e859c2bc9873a2f1392aa83c9182486d3aa4eaeb5f164cf8ccf29cc74fd8ad56245f76a039a -AUX nvidia-cuda-toolkit-glibc-2.41-r1.patch 4855 BLAKE2B e06dc68c473fb427c8347343652dbd93f209fb0b19ade54aba7bb2a6ab5344b896d1f2dc86ed4e0ec1a4de739716fe30ff1ff3629d73eb6a4c081c25a7454fae SHA512 037c906903cf7058543c6636263d93ce5b80bedcc601417c7e23758966c428434593d61ee7e32d51e07c5f16ee595510f1ce7db9f000f906fe96928a3b4ed5fb -AUX parse_manifest.py 8488 BLAKE2B 8ac93a39276eaf89b41a5b0baa168b5974423077b0fd4b22841451514513c914fb4188863d73591f89975cc833dcb88bde289b0676f218715d8735a2d5c0f159 SHA512 4b2d9de215858d25319254666a22a184e26510a3488fc97a939704fab1e81a9baa363fc1168129618ce076de84d7acbeb71d98b8be272017f47b54c237d9b9a4 -DIST cuda_12.9.1_575.57.08_linux.run 5860276058 BLAKE2B 482aee91731ca490956f3cf375e973b15ddcf69b295693d34488958e2592e5c55dabed589aa4f5f4ad59a50ae00b4523e5ebf760a613b634ca00164d363fb567 SHA512 fc29c5fc1121fb6634f1fe396abe7f34d351686454516269e9143e678ea178f906a35b916b8bb2d96ecfcfc705dda7d0f4547f7e7f00d36e392d981a766b6a56 -DIST cuda_12.9.1_575.57.08_linux_sbsa.run 5074335372 BLAKE2B 71782c3e7e39503aa914c8e02b7e5e44c856bd98bb9d1d46b90dfb7db4a2becb03ed1467fbca34c2ea1147202deb379198495007d69c7987320e138a63f2164e SHA512 91e3b457b6c36c8c3f07ae6fbd24f3f90b9ea22397059f91655ad68c32b96547e2c732af987a0c5ea63c37c43d48f199d97b9e84068c145633ebf67c34465ac6 -EBUILD nvidia-cuda-toolkit-12.9.1.ebuild 10590 BLAKE2B bd84a00b2c334de9625a6d00250372b3a227746d22efec9f24f6679523a45cbd39825bc28fb002abced5fa447769d416c0706362cf3d549074a2d42e46520c44 SHA512 4cafc7bdbc64d039cd922286ddb990dc8544a23427191c639bc36bbd93117521d7e49efb363a2a448158f9b392f2357cf41c82785dff5475ec07985b78ebd6fd -MISC metadata.xml 843 BLAKE2B 5ed06252572415290175ff90b66c1e13b67d282085295586e046019cc7d28b6e11728fba310bcf4101caaf09f4d1383f8df3f1c97325fa9e979dfa06e4704571 SHA512 208c83e0d968796d526b7223c5221f0805401b31420807a21f078797cba8e3f141c654017331a89649af2aa29a40cc1ff28f9cfa3ba2e6bee85fa76957c01837 diff --git a/dev-util/nvidia-cuda-toolkit/files/cuda-config.in b/dev-util/nvidia-cuda-toolkit/files/cuda-config.in deleted file mode 100644 index 10db7dd..0000000 --- a/dev-util/nvidia-cuda-toolkit/files/cuda-config.in +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -SUPPORT_GCC_VERSIONS_BY_CUDA="CUDA_SUPPORTED_GCC" - -_print_help() { - cat <<- EOF - Usage: - $(basename $0) [options] - - -s | --supported Returns by current CUDA supported gcc versions - -h | --help Shows this help - EOF -} - -case ${1} in - -s|--supported) - echo "${SUPPORT_GCC_VERSIONS_BY_CUDA}" - exit 0 - ;; - -h|--help) - _print_help - exit 255 - ;; - *) - _print_help - exit 1 - ;; -esac diff --git a/dev-util/nvidia-cuda-toolkit/files/nvidia-cuda-toolkit-glibc-2.41-r1.patch b/dev-util/nvidia-cuda-toolkit/files/nvidia-cuda-toolkit-glibc-2.41-r1.patch deleted file mode 100644 index 32e5bd6..0000000 --- a/dev-util/nvidia-cuda-toolkit/files/nvidia-cuda-toolkit-glibc-2.41-r1.patch +++ /dev/null @@ -1,119 +0,0 @@ -From cae8ab12c9f981f110bb2e1318d9c5306e3a2d81 Mon Sep 17 00:00:00 2001 -From: Paul Zander -Date: Sat, 8 Feb 2025 16:34:42 +0100 -Subject: [PATCH] Updates headers for glibc-2.41 - -Match the extern definitions in cuda-crt headers with the changes in glibc-2.41. - -/usr/include/bits/mathcalls.h(79): error: exception specification is -incompatible with that of previous function "cospi" (declared at line 2601 -of -/opt/cuda-12.8.0/bin/../targets/x86_64-linux/include/crt/math_functions.h) - - extern double cospi (double __x) noexcept (true); extern double __cospi (double __x) noexcept (true); - -/opt/cuda-12.8.1/bin/../targets/x86_64-linux/include/crt/math_functions.hpp:2982:17: error: 'sinpi' is missing exception specification 'throw()' - 2982 | __func__(double sinpi(double a)) - | ^ - | throw() -/opt/cuda-12.8.1/bin/../targets/x86_64-linux/include/crt/func_macro.h:37:16: note: expanded from macro '__func__' - 37 | inline decl - | ^ -/opt/cuda-12.8.1/bin/../targets/x86_64-linux/include/crt/math_functions.h:6006:17: note: previous declaration is here - 6006 | __func__(double sinpi(double a)); - -See-Also: https://sourceware.org/git/?p=glibc.git;a=commit;h=0ae0af68d8fa3bf6cbe1e4f1de5929ff71de67b3 -Signed-off-by: Paul Zander - -diff --git a/builds/cuda_nvcc/targets/x86_64-linux/include/crt/math_functions.h b/builds/cuda_nvcc/targets/x86_64-linux/include/crt/math_functions.h -index d8201f9..a9b19d4 100644 ---- a/builds/cuda_nvcc/targets/x86_64-linux/include/crt/math_functions.h -+++ b/builds/cuda_nvcc/targets/x86_64-linux/include/crt/math_functions.h -@@ -2553,7 +2553,11 @@ extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ float rcbrt - * - * \note_accuracy_double - */ -+#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 41 -+extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ double sinpi(double x) noexcept (true); -+#else - extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ double sinpi(double x); -+#endif - /** - * \ingroup CUDA_MATH_SINGLE - * \brief Calculate the sine of the input argument -@@ -2576,7 +2580,11 @@ extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ double sinpi - * - * \note_accuracy_single - */ -+#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 41 -+extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ float sinpif(float x) noexcept (true); -+#else - extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ float sinpif(float x); -+#endif - /** - * \ingroup CUDA_MATH_DOUBLE - * \brief Calculate the cosine of the input argument -@@ -2598,7 +2606,11 @@ extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ float sinpi - * - * \note_accuracy_double - */ -+#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 41 -+extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ double cospi(double x) noexcept (true); -+#else - extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ double cospi(double x); -+#endif - /** - * \ingroup CUDA_MATH_SINGLE - * \brief Calculate the cosine of the input argument -@@ -2620,7 +2632,11 @@ extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ double cospi - * - * \note_accuracy_single - */ -+#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 41 -+extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ float cospif(float x) noexcept (true); -+#else - extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ float cospif(float x); -+#endif - /** - * \ingroup CUDA_MATH_DOUBLE - * \brief Calculate the sine and cosine of the first input argument -diff --git a/builds/cuda_nvcc/targets/x86_64-linux/include/crt/math_functions.hpp b/builds/cuda_nvcc/targets/x86_64-linux/include/crt/math_functions.hpp -index cc09b91..11eec71 100644 ---- a/builds/cuda_nvcc/targets/x86_64-linux/include/crt/math_functions.hpp -+++ b/builds/cuda_nvcc/targets/x86_64-linux/include/crt/math_functions.hpp -@@ -2979,7 +2979,7 @@ __func__(double rcbrt(const double a)) - return t; - } - --__func__(double sinpi(double a)) -+__func__(double sinpi(double a)) throw() - { - int n; - -@@ -3009,7 +3009,7 @@ __func__(double sinpi(double a)) - return a; - } - --__func__(double cospi(double a)) -+__func__(double cospi(double a)) throw() - { - int n; - -@@ -3340,12 +3340,12 @@ __func__(float rcbrtf(const float a)) - return static_cast(rcbrt(static_cast(a))); - } - --__func__(float sinpif(const float a)) -+__func__(float sinpif(const float a)) throw() - { - return static_cast(sinpi(static_cast(a))); - } - --__func__(float cospif(const float a)) -+__func__(float cospif(const float a)) throw() - { - return static_cast(cospi(static_cast(a))); - } --- -2.48.1 - diff --git a/dev-util/nvidia-cuda-toolkit/files/parse_manifest.py b/dev-util/nvidia-cuda-toolkit/files/parse_manifest.py deleted file mode 100644 index d50545c..0000000 --- a/dev-util/nvidia-cuda-toolkit/files/parse_manifest.py +++ /dev/null @@ -1,223 +0,0 @@ -#!/usr/bin/env python -# Copyright 2024-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 -# -# -# Takes the manifests/*.xml file from the NVIDIA CUDA Toolkit as input. -# Those files contain a nested tree of package items. -# -# For each package node a if block is output that checks the package's -# name attribute against the environment provided array SKIP_COMPONENTS -# and skips that whole package if it's listed in it. -# -# Each item contains four nodes that reference things to install, -# `dir`, `file`, `desktopFile`, & `pcfile`, and metadata that further -# detail these. This script will output calls to do* calls that -# use the metadata. -# - dodir would create an empty file - we handle this in dofile -# - dofile copies a regex file glob -# - dodesktopFile creates a .desktop file -# - dopcfile creates a pkgconfig file -# -# The resulting bash code can be run inside src_install(). -# -# Usage: python parse_manifest.py - - -import argparse -import xml.etree.ElementTree - -import defusedxml.ElementTree -from pathlib import Path - -ind = "\t" -indent = 1 - - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument('filename') # positional argument - - args = parser.parse_args() - - basedir = Path(args.filename).parents[1] - - et = defusedxml.ElementTree.parse(args.filename) - - # Find all packages under the package with the id main (i.e. under "CUDA Installer") - for e in et.findall("[@id='main']/package"): - def p_package(el: xml.etree.ElementTree.Element, level: int = 0): - - skip = { - "Documentation", # obsolete - "Driver", # unused - # "Kernel Objects", # split - # "Demo Suite", - # "Visual Tools", - # old eclipse - # "nsight", - # old java - # "nvvp", - # "cuda-gdb-src" - } - - name = el.get("name") - - # trim leading CUDA and trailing version - if name.startswith("CUDA"): - name2 = ' '.join(name.split(" ")[1:-1]) - else: - name2 = name - - if name2 in skip: - return - - # avoid having to deal with whitespaces in bash - name2 = name2.replace(" ", "_") - - path = "" - - print(f"{ind * (level + 0) * indent}if ! has {name2} \"${{SKIP_COMPONENTS[@]}}\"; then # \"{name}\"") - - # output attributes from unhandled tags - for child in el: - if child.tag == "package": - continue - if child.tag == "file": - continue - if child.tag == "desktopFile": - continue - if child.tag == "pcfile": - continue - for attrib in child.attrib: - print(f"{child.tag} {attrib}={child.attrib[attrib]}") - - # CUDA Installer - # only for CUDA Installer - # unused - for node in el.findall("./name"): - print(f"{ind * (level + 1) * indent}# {node.tag}: \"{node.text}\"") - - # compiler - # category. We use the package name instead. - # unused - # for node in el.findall("./type"): - # print(f"{ind * (level + 1) * indent}# {node.tag}: \"{node.text}\"") - - # 1 - # probably sorting for the tui installer - # unused - # for node in el.findall("./priority"): - # print(f"{ind * (level + 1) * indent}# {node.tag}: \"{node.text}\"") - - # - # proably for tui installer - # unused - # for node in el.findall("./single-selection"): - # print(f"{ind * (level + 1) * indent}# {node.tag}: \"{node.text}\"") - - # 2.24.2 - # version of the installed kernel object (Kernel Objects only) - # unused - for node in el.findall("./koversion"): - print(f"{ind * (level + 1) * indent}# {node.tag}: \"{node.text}\"") - - # /usr/local/cuda-12.8 - # overrides the install location - # unused - # for node in el.findall("./installPath"): - # print(f"{ind * (level + 1) * indent}# {node.tag}: \"{node.text}\"") - - # ./builds/cuda_cccl/ - # path where the package files are found - # we cd into it - for node in el.findall("./buildPath"): - path = node.text.removeprefix('./') - print(f"{ind * (level + 1) * indent}cd \"${{S}}/{path}\" || die \"cd ${{S}}/{path} failed\"") - print() - - # bin - # would install empty dirs - # unused - # for node in el.findall("./dir"): - # pass - - # .* - # targets/x86_64-linux/lib/.*\.so - # regex glob of files to install. - for node in el.findall("./file"): - # unescape '.*' -> '*' & '\.' -> '.' - file = (node.text - .replace(".*", "*") - .replace(r"\.", ".") - .replace("x86_64", "${narch}") - .replace("sbsa", "${narch}") - ) - - # optional dir offset, we merge it into path - dir = "" - if "dir" in node.attrib: - dir = f" \"{Path(node.attrib['dir'])}\"" - - filepath = basedir / path / file - - # ignore existing symlinks ( include, lib* ) and the uninstallers - if not filepath.is_symlink() and not file.endswith("-uninstaller"): - print(f"{ind * (level + 1) * indent}dofile \"{file}\"{dir}") - - # opencl-12.8.pc - # create a pkgconfig file for the given description and lib name/version - for node in el.findall("./pcfile"): - offset = node.text.rfind('-') - if offset == -1: - raise RuntimeError(f"failed to split pcfile {node.text}") - - lib_name = node.text[:offset] - - if not node.text.endswith('.pc'): - raise RuntimeError(f"pcfile does not end in '.pc' {node.text}") - lib_version = node.text[offset+1:-3] - - if "description" not in node.attrib: - raise RuntimeError(f"no description for {node.text}") - - subdir = "" - if "subdir" in node.attrib: - subdir = f" \"{node.attrib['subdir']}\"" - - print(f"{ind * (level + 1) * indent}dopcfile " - f"\"{lib_name}\" " - f"\"{lib_version}\" " - f"\"{node.attrib['description']}\"{subdir}") - - # - # create a .desktop file - for node in el.findall("./desktopFile"): - print(f"{ind * (level + 1) * indent}dodesktopFile \\") - print(f"{ind * (level + 2) * indent}\"{node.attrib['filename']}\" \\") - print(f"{ind * (level + 2) * indent}\"{node.attrib['name']}\" \\") - print(f"{ind * (level + 2) * indent}\"{node.attrib['categories']}\" \\") - print(f"{ind * (level + 2) * indent}\"{node.attrib['keywords']}\" \\") - print(f"{ind * (level + 2) * indent}\"{node.attrib['iconPath']}\" \\") - print(f"{ind * (level + 2) * indent}\"{node.attrib['execPath']}\" \\") - print(f"{ind * (level + 2) * indent}\"{node.attrib['tryExecPath']}\"") - - # iterator over all nested packages - for node in el.findall("./package"): - p_package(node, level + 1) - - print(f"{ind * (level + 0) * indent}fi") - - p_package(e) - - -if __name__ == "__main__": - main() diff --git a/dev-util/nvidia-cuda-toolkit/metadata.xml b/dev-util/nvidia-cuda-toolkit/metadata.xml deleted file mode 100644 index b28664c..0000000 --- a/dev-util/nvidia-cuda-toolkit/metadata.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - sci@gentoo.org - Gentoo Science Project - - - Depend on llvm-core/clang as host compiler - Install the CUDA debugger - Install profiling and optimizing tools (nsight-compute, nsight-systems) - Install the NVIDIA CUDA profiler (nvprof) and the related libraries - Enable infiniband support via sys-cluster/rdma-core - Install compute-sanitizer tool - Install the NVIDIA CUDA visual profiler (nvvp) - - diff --git a/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.9.1.ebuild b/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.9.1.ebuild deleted file mode 100644 index 5384ec1..0000000 --- a/dev-util/nvidia-cuda-toolkit/nvidia-cuda-toolkit-12.9.1.ebuild +++ /dev/null @@ -1,382 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# shellcheck disable=SC2317 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..13} ) -inherit check-reqs edo toolchain-funcs -inherit python-r1 - -DRIVER_PV="575.57.08" -GCC_MAX_VER="14" -CLANG_MAX_VER="19" - -DESCRIPTION="NVIDIA CUDA Toolkit (compiler and friends)" -HOMEPAGE="https://developer.nvidia.com/cuda-zone" -SRC_URI=" - amd64? ( - https://developer.download.nvidia.com/compute/cuda/${PV}/local_installers/cuda_${PV}_${DRIVER_PV}_linux.run - ) - arm64? ( - https://developer.download.nvidia.com/compute/cuda/${PV}/local_installers/cuda_${PV}_${DRIVER_PV}_linux_sbsa.run - ) -" -S="${WORKDIR}" - -LICENSE="NVIDIA-CUDA" - -SLOT="0/${PV}" # UNSLOTTED -# SLOT="${PV}" # SLOTTED - -KEYWORDS="-* ~amd64 ~arm64 ~amd64-linux ~arm64-linux" -IUSE="clang debugger examples nsight profiler rdma sanitizer" -RESTRICT="bindist mirror strip test" - -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? ( - /dev/null || die - eapply -p5 "${FILESDIR}/nvidia-cuda-toolkit-glibc-2.41-r1.patch" - popd >/dev/null || die - - default -} - -src_configure() { - : -} - -src_compile() { - : -} - -src_install() { - local -x SKIP_COMPONENTS=( - "Kernel_Objects" - "Visual_Tools" - "Documentation" # obsolete - "cuda-gdb-src" # not used - ) - - ! use debugger && SKIP_COMPONENTS+=( "cuda-gdb" ) - ! use examples && SKIP_COMPONENTS+=( "Demo_Suite" ) - ! use profiler && SKIP_COMPONENTS+=( "cuda-cupti" "cuda-profiler-api" "nvprof" ) - ! use sanitizer && SKIP_COMPONENTS+=( "compute-sanitizer" ) - - dodir "${CUDA_PATH}" - into "${CUDA_PATH}" - - dofile() { - debug-print-function "${FUNCNAME[0]}" "$@" - - if [[ $# -ne 1 ]] && [[ $# -ne 2 ]]; then - die "${FUNCNAME[0]} must receive one or two arguments" - fi - - local _DESTDIR - _DESTDIR="$(dirname "${CUDA_PATH}/${1%/}")${2:+/${2%/}}" - mkdir -p "${ED}${_DESTDIR}" || die "mkdir ${_DESTDIR} failed" - - local dir - dir="$(dirname "${1}")" - - if test -z "$(find "${dir}" -maxdepth 1 -name "$(basename "$1")" -print -quit)"; then - if [[ -e "${ED}${_DESTDIR}/$(basename "${1}")" ]]; then - return - fi - if [[ "$1" == "targets/x86_64-linux/lib/stubs/libcusolverMg*" ]] || - [[ "$1" == "targets/x86_64-linux/lib/libcusparse.so.*" ]]; then - return - fi - return - fi - - if [[ -e "${ED}${_DESTDIR}/$(basename "${1}")" ]]; then - # skip noisy warnings - if [[ "$(basename "${1}")" == "include" ]] || - [[ "$(basename "${1}")" == "lib64" ]]; then - return - fi - eqawarn "${ED}${_DESTDIR}/$(basename "${1}") exists" - return - fi - - eval mv -i "${1}" "${ED}${_DESTDIR}" || die "mv failed ${PWD} / ${1} -> ${ED} ${_DESTDIR}" - } - - dopcfile() { - [[ $# -eq 0 ]] && return - - dodir "${CUDA_PATH}/pkgconfig" - cat > "${ED}${CUDA_PATH}/pkgconfig/${1}.pc" <<-EOF || die "dopcfile" - cudaroot=${EPREFIX}${CUDA_PATH} - libdir=\${cudaroot}/targets/${narch}-linux/lib${4} - includedir=\${cudaroot}/targets/${narch}-linux/include - - Name: ${1} - Description: ${3} - Version: ${2} - Libs: -L\${libdir} -l${1} - Cflags: -I\${includedir} - EOF - } - - pushd builds >/dev/null || die - fix_executable_bit=( - cuda_cupti/extras/CUPTI/samples/pc_sampling_utility/pc_sampling_utility_helper.h - cuda_cupti/extras/CUPTI/samples/pc_sampling_continuous/libpc_sampling_continuous.pl - - libcufile/gds/tools/run_gdsio.cfg - ) - - if use amd64; then - fix_executable_bit+=( - cuda_opencl/targets/*/include/CL/cl.hpp - - libcufile/targets/*/lib/libcufile_rdma_static.a - libcufile/targets/*/lib/libcufile_static.a - ) - fi - chmod -x "${fix_executable_bit[@]}" || die "failed chmod" - popd >/dev/null || die - - ebegin "parsing manifest" "${S}/manifests/cuda_"*.xml # {{{ - - "${EPYTHON}" "${FILESDIR}/parse_manifest.py" "${S}/manifests/cuda_"*".xml" &> "${T}/install.sh" \ - || die "failed to parse manifest" - # shellcheck disable=SC1091 - source "${T}/install.sh" || die "failed to source install script" - - eend $? # }}} - - if use debugger; then - if [[ -d "${ED}/${CUDA_PATH}/extras/Debugger/lib64" ]]; then - rmdir "${ED}/${CUDA_PATH}/extras/Debugger/lib64" || die "remove debugger lib64" - fi - - find "${ED}/${CUDA_PATH}/bin" -maxdepth 1 -name "cuda-gdb-*-tui" -print0 | while read -rd $'\0' tui_name; do - impl="$(basename "${tui_name}" | cut -d '-' -f 3 | tr '.' '_')" - - if ! has "${impl}" "${PYTHON_COMPAT[@]}" || ! use "python_targets_${impl}"; then - rm "${tui_name}" || die "tui-name rm ${tui_name}" - sed -e "/$(basename "${tui_name}")\"/d" -i "${ED}/${CUDA_PATH}/bin/cuda-gdb" || die "tui_name sed" - fi - done - fi - - # remove rdma libs (unless USE=rdma) - if ! use rdma; then - rm "${ED}/${CUDA_PATH}/targets/${narch}-linux/lib/libcufile_rdma"* || die "failed to remove rdma files" - fi - - # Add include and lib symlinks - dosym -r "${CUDA_PATH}/targets/${narch}-linux/include" "${CUDA_PATH}/include" - dosym -r "${CUDA_PATH}/targets/${narch}-linux/lib" "${CUDA_PATH}/$(get_libdir)" - - find "${ED}/${CUDA_PATH}" -empty -delete || die - - local ldpathextradirs pathextradirs - - use debugger && ldpathextradirs+=":${EPREFIX}${CUDA_PATH}/extras/Debugger/lib64" - use profiler && ldpathextradirs+=":${EPREFIX}${CUDA_PATH}/extras/CUPTI/lib64" - - local revord=$(( 999999 - $(printf "%02d%02d%02d" "$(ver_cut 1)" "$(ver_cut 2)" "$(ver_cut 3)") )) - newenvd - "99cuda${revord}" <<-EOF - PATH=${EPREFIX}${CUDA_PATH}/bin${pathextradirs} - PKG_CONFIG_PATH=${EPREFIX}${CUDA_PATH}/pkgconfig - LDPATH=${EPREFIX}${CUDA_PATH}/$(get_libdir):${EPREFIX}${CUDA_PATH}/nvvm/lib64${ldpathextradirs} - EOF - - # CUDA prepackages libraries, don't revdep-build on them - insinto /etc/revdep-rebuild - newins - "80${PN}${revord}" <<-EOF - SEARCH_DIRS_MASK="${EPREFIX}${CUDA_PATH}" - EOF - - # https://bugs.gentoo.org/926116 - insinto /etc/sandbox.d - newins - "80${PN}" <<-EOF - SANDBOX_PREDICT="/proc/self/task" - EOF - - # TODO drop and replace with runtime detection similar to what python does {{{ - # ATTENTION: change requires revbump, see link below for supported GCC # versions - # https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#system-requirements - local cuda_supported_gcc=( 8.5 9.5 10 11 12 13 "${GCC_MAX_VER}" ) - - sed \ - -e "s:CUDA_SUPPORTED_GCC:${cuda_supported_gcc[*]}:g" \ - "${FILESDIR}"/cuda-config.in > "${ED}/${CUDA_PATH}/bin/cuda-config" || die - fperms +x "${CUDA_PATH}/bin/cuda-config" - # }}} - - # skip til cudnn has been changed #950207 - # if [[ "${SLOT}" != "${PV}" ]]; then - # dosym -r "${CUDA_PATH}" "${CUDA_PATH%"-${PV}"}" - # fi - - fowners -R root:root "${CUDA_PATH}" -} - -pkg_postinst_check() { - if tc-is-gcc || ! use clang; then - if ver_test "$(gcc-major-version)" -gt "${GCC_MAX_VER}"; then - ewarn - ewarn "gcc > ${GCC_MAX_VER} will not work with CUDA" - ewarn - ewarn "Append --ccbin= pointing to a gcc bindir to the nvcc compiler flags (NVCCFLAGS)" - ewarn "or set NVCC_CCBIN to the same bindir." - ewarn " NVCCFLAGS=\"--ccbin=$(eval echo "${EPREFIX}/usr/*-linux-gnu/gcc-bin/${GCC_MAX_VER}")\"" - ewarn " NVCC_CCBIN=$(eval echo "${EPREFIX}/usr/*-linux-gnu/gcc-bin/${GCC_MAX_VER}")" - ewarn - fi - fi - - if tc-is-clang || use clang; then - if ver_test "$(clang-major-version)" -gt "${CLANG_MAX_VER}"; then - ewarn - ewarn "clang > ${CLANG_MAX_VER} will not work with CUDA" - ewarn - ewarn "Append --ccbin= pointing to a clang bindir to the nvcc compiler flags (NVCCFLAGS)" - ewarn "or set NVCC_CCBIN to the same bindir." - ewarn " NVCCFLAGS=\"--ccbin=$(eval echo "${EPREFIX}/usr/lib/llvm/*/bin${CLANG_MAX_VER}")\"" - ewarn " NVCC_CCBIN=$(eval echo "${EPREFIX}/usr/lib/llvm/*/bin${CLANG_MAX_VER}")" - ewarn - fi - fi -} - -pkg_postinst() { - if [[ ${MERGE_TYPE} != binary ]]; then - pkg_postinst_check - fi - - if use profiler; then - einfo - einfo "nvidia-drivers restricts access to performance counters." - einfo "You'll need to run profiling tools (nvprof) " - einfo "using sudo (needs cap SYS_ADMIN) or add the following line to " - einfo "a modprobe configuration file " - einfo "(e.g. /etc/modprobe.d/nvidia-prof.conf): " - einfo - einfo "options nvidia NVreg_RestrictProfilingToAdminUsers=0" - einfo - fi -} diff --git a/metadata/md5-cache/dev-util/nvidia-cuda-toolkit-12.9.1 b/metadata/md5-cache/dev-util/nvidia-cuda-toolkit-12.9.1 deleted file mode 100644 index 14b84f4..0000000 --- a/metadata/md5-cache/dev-util/nvidia-cuda-toolkit-12.9.1 +++ /dev/null @@ -1,16 +0,0 @@ -BDEPEND=|| ( ( dev-lang/python:3.13 dev-python/defusedxml[python_targets_python3_13(-)] ) ( dev-lang/python:3.12 dev-python/defusedxml[python_targets_python3_12(-)] ) ( dev-lang/python:3.11 dev-python/defusedxml[python_targets_python3_11(-)] ) ) -DEFINED_PHASES=compile configure install postinst prepare pretend setup unpack -DESCRIPTION=NVIDIA CUDA Toolkit (compiler and friends) -EAPI=8 -HOMEPAGE=https://developer.nvidia.com/cuda-zone -INHERIT=check-reqs edo toolchain-funcs python-r1 -IUSE=clang debugger examples nsight profiler rdma sanitizer python_targets_python3_11 python_targets_python3_12 python_targets_python3_13 -KEYWORDS=-* ~amd64 ~arm64 ~amd64-linux ~arm64-linux -LICENSE=NVIDIA-CUDA -RDEPEND=!clang? (