commit: 03c678f5daebb8c8004135334d18dc677a661a7b Author: Paul Zander <negril.nx+gentoo <AT> gmail <DOT> com> AuthorDate: Sun Aug 10 18:48:00 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sun Aug 10 20:46:13 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=03c678f5
dev-util/nvidia-cuda-toolkit: fix build with glibc-2.42 Signed-off-by: Paul Zander <negril.nx+gentoo <AT> gmail.com> Part-of: https://github.com/gentoo/gentoo/pull/43405 Closes: https://github.com/gentoo/gentoo/pull/43405 Signed-off-by: Sam James <sam <AT> gentoo.org> .../files/nvidia-cuda-toolkit-glibc-2.42.patch | 49 ++++++++++++++++++++++ .../nvidia-cuda-toolkit-12.9.1.ebuild | 3 ++ 2 files changed, 52 insertions(+) diff --git a/dev-util/nvidia-cuda-toolkit/files/nvidia-cuda-toolkit-glibc-2.42.patch b/dev-util/nvidia-cuda-toolkit/files/nvidia-cuda-toolkit-glibc-2.42.patch new file mode 100644 index 000000000000..d292b425f07d --- /dev/null +++ b/dev-util/nvidia-cuda-toolkit/files/nvidia-cuda-toolkit-glibc-2.42.patch @@ -0,0 +1,49 @@ +From 00713637a617aea1813ba7f09f0ba7de414415b9 Mon Sep 17 00:00:00 2001 +From: Paul Zander <[email protected]> +Date: Sun, 10 Aug 2025 12:31:03 +0200 +Subject: [PATCH] Updates headers for glibc-2.42 + +Match the extern definitions in cuda-crt headers with the changes in glibc-2.42. + +/usr/include/bits/mathcalls.h(206): error: exception specification is +incompatible with that of previous function "rsqrtf" (declared at line 657 of +/opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h) + +extern float rsqrtf (float __x) noexcept (true); extern float __rsqrtf (float +__x) noexcept (true); + +See-Also: +https://sourceware.org/git/?p=glibc.git;a=commit;h=77261698b4e938020a1b2032709a54d942ba330f +Signed-off-by: Paul Zander <[email protected]> + +diff --git a/builds/cuda_crt/targets/x86_64-linux/include/crt/math_functions.h b/builds/cuda_crt/targets/x86_64-linux/include/crt/math_functions.h +index 50a6646..d525a86 100644 +--- a/builds/cuda_crt/targets/x86_64-linux/include/crt/math_functions.h ++++ b/builds/cuda_crt/targets/x86_64-linux/include/crt/math_functions.h +@@ -626,7 +626,11 @@ extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ double __cdecl sqrt( + * + * \note_accuracy_double + */ ++#if defined(__GLIBC__) && (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 42) ++extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ double rsqrt(double x) noexcept (true); ++#else + extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ double rsqrt(double x); ++#endif + + /** + * \ingroup CUDA_MATH_SINGLE +@@ -650,7 +654,11 @@ extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ double rsqrt + * + * \note_accuracy_single + */ ++#if defined(__GLIBC__) && (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 42) ++extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ float rsqrtf(float x) noexcept (true); ++#else + extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ float rsqrtf(float x); ++#endif + + #if defined(__QNX__) && !defined(_LIBCPP_VERSION) + namespace std { +-- +2.50.1 + 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 index 547f74329f31..16ec46487188 100644 --- 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 @@ -155,6 +155,9 @@ src_prepare() { pushd "builds/cuda_nvcc/targets/${narch}-linux" >/dev/null || die eapply -p5 "${FILESDIR}/nvidia-cuda-toolkit-glibc-2.41-r1.patch" popd >/dev/null || die + pushd "builds/cuda_crt/targets/${narch}-linux" >/dev/null || die + eapply -p5 "${FILESDIR}/nvidia-cuda-toolkit-glibc-2.42.patch" + popd >/dev/null || die default }
