stdlibc++ of GCC-15 adds __glibcxx_assert in std::clamp, std::array, etc, which breaks HIP code. However, `clang -x hip` autoloads few files, one of them is (the only one from dev-util/hip), where we can undefine __glibcxx_assert until it is fixed in stdlibc++. Upstream bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115740 Bug: https://bugs.gentoo.org/955623 --- a/hipamd/CMakeLists.txt +++ b/hipamd/CMakeLists.txt @@ -314,6 +314,16 @@ set(_versionInfoHeader #define HIP_VERSION_BUILD_NAME \"${HIP_VERSION_BUILD_NAME}\" #define HIP_VERSION (HIP_VERSION_MAJOR * 10000000 + HIP_VERSION_MINOR * 100000 + HIP_VERSION_PATCH)\n #define __HIP_HAS_GET_PCH ${_pchStatus}\n + +// Workaround for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115740 +#if defined(__has_include) && defined(__cplusplus) && defined(__HIP__) + #if __has_include(\"bits/c++config.h\") + #include + #undef __glibcxx_assert + #define __glibcxx_assert(cond) + #endif +#endif + #endif\n ") file(WRITE "${PROJECT_BINARY_DIR}/include/hip/hip_version.h" ${_versionInfoHeader})