ROCm / rocm_smi_lib

ROCm SMI LIB
https://rocm.docs.amd.com/projects/rocm_smi_lib/en/latest/
MIT License
110 stars 48 forks source link

[Issue]: Build failure with GCC-14: rocm_smi_lib/include/rocm_smi/rocm_smi_utils.h:237:18: error: assignment of member ‘dismiss_’ in read-only object #170

Open NHOrus opened 1 month ago

NHOrus commented 1 month ago

Problem Description

Gentoo bug https://bugs.gentoo.org/918709 for 5.4.2, but issue persists for 6.1.1

/home/.../rocm_smi_lib/include/rocm_smi/rocm_smi_utils.h: In member function ‘amd::smi::ScopeGuard<lambda>& amd::smi::ScopeGuard<lambda>::operator=(const amd::smi::ScopeGuard<lambda>&)’:
/home/.../rocm_smi_lib/include/rocm_smi/rocm_smi_utils.h:237:18: error: assignment of member ‘dismiss_’ in read-only object
  237 |     rhs.dismiss_ = true;
      |     ~~~~~~~~~~~~~^~~~~~

Operating System

Gentoo

CPU

AMD Ryzen 7 5700U with Radeon Graphics

GPU

AMD Radeon VII

ROCm Version

ROCm 6.1.0

ROCm Component

rocm_smi_lib

Steps to Reproduce

install gcc-14 Try to compile with gcc-14 as standard compiler

(Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support

No response

Additional Information

No response

PIPIPIG233666 commented 1 month ago

❯ cat gcc14.patch

--- a/include/rocm_smi/rocm_smi_utils.h 2024-05-25 00:02:19.127412816 -0400
+++ b/include/rocm_smi/rocm_smi_utils.h 2024-05-25 00:03:25.359416227 -0400
@@ -149,7 +149,7 @@
   __forceinline ~ScopeGuard() {
     if (!dismiss_) release_();
   }
-  __forceinline ScopeGuard& operator=(const ScopeGuard& rhs) {
+  __forceinline ScopeGuard& operator=(ScopeGuard& rhs) {
     dismiss_ = rhs.dismiss_;
     release_ = rhs.release_;
     rhs.dismiss_ = true;
dmitrii-galantsev commented 2 weeks ago

thanks for submitting a bug. I pushed this out for now: https://github.com/ROCm/rocm_smi_lib/commit/7fdc6e56c40ed6f02c888dcb1492944a9373ba74

Internal change pending. Should be in develop in a day or 2.