blob: 9a3c673a92e63a30007960ab3b1b2aff9a47b14a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
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 <hip/hip_version.h> (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__) && !defined(__HIPCC_RTC__)
+ #if __has_include(\"bits/c++config.h\")
+ #include <bits/c++config.h>
+ #undef __glibcxx_assert
+ #define __glibcxx_assert(cond)
+ #endif
+#endif
+
#endif\n
")
file(WRITE "${PROJECT_BINARY_DIR}/include/hip/hip_version.h" ${_versionInfoHeader})
|