cuda_nvcc: also patch math_functions.hpp for glibc 2.42
The existing glibc 2.42 compatibility patch fixes function signatures in math_functions.h but misses math_functions.hpp, which has the same rsqrt/sinpi/cospi functions wrapped in __func__() macros. Without throw() annotations on these, C++ compilation fails when glibc 2.42 declares the same functions with throw().
This commit is contained in:
@@ -189,6 +189,29 @@ buildRedist (finalAttrs: {
|
||||
--replace-fail \
|
||||
"rsqrtf(float x);" \
|
||||
"rsqrtf(float x) noexcept (true);"
|
||||
|
||||
# math_functions.hpp has the same functions wrapped in __func__() macros.
|
||||
# These also need throw() annotations to match glibc 2.42's declarations.
|
||||
nixLog "Patching math_functions.hpp signatures to match glibc's ones"
|
||||
substituteInPlace "''${!outputInclude:?}/include/crt/math_functions.hpp" \
|
||||
--replace-fail \
|
||||
"__func__(double rsqrt(const double a))" \
|
||||
"__func__(double rsqrt(const double a) throw())" \
|
||||
--replace-fail \
|
||||
"__func__(double sinpi(double a))" \
|
||||
"__func__(double sinpi(double a) throw())" \
|
||||
--replace-fail \
|
||||
"__func__(double cospi(double a))" \
|
||||
"__func__(double cospi(double a) throw())" \
|
||||
--replace-fail \
|
||||
"__func__(float rsqrtf(const float a))" \
|
||||
"__func__(float rsqrtf(const float a) throw())" \
|
||||
--replace-fail \
|
||||
"__func__(float sinpif(const float a))" \
|
||||
"__func__(float sinpif(const float a) throw())" \
|
||||
--replace-fail \
|
||||
"__func__(float cospif(const float a))" \
|
||||
"__func__(float cospif(const float a) throw())"
|
||||
''
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user