From 1238aa538cdc265b2ef0d38f49be2deda04e4549 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 13 May 2026 21:51:52 +0200 Subject: [PATCH] gnu: amd-smi: Fix build with newer libdrm. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/patches/amd-smi-newer-libdrm.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/rocm.scm (amd-smi)[source]: Use it. Fixes: guix/guix#8058 Change-Id: I3348b888ab297647c4fdb2e4a38707a92994af22 Signed-off-by: Ludovic Courtès Merges: #8599 --- gnu/local.mk | 1 + .../patches/amd-smi-newer-libdrm.patch | 172 ++++++++++++++++++ gnu/packages/rocm.scm | 3 +- 3 files changed, 175 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/amd-smi-newer-libdrm.patch diff --git a/gnu/local.mk b/gnu/local.mk index 418a7fce78b..f65f828dba5 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1000,6 +1000,7 @@ dist_patch_DATA = \ %D%/packages/patches/akonadi-not-relocatable.patch \ %D%/packages/patches/akonadi-timestamps.patch \ %D%/packages/patches/alure-dumb-2.patch \ + %D%/packages/patches/amd-smi-newer-libdrm.patch \ %D%/packages/patches/amd-smi-python.patch \ %D%/packages/patches/ibus-anthy-fix-tests.patch \ %D%/packages/patches/ibus-table-paths.patch \ diff --git a/gnu/packages/patches/amd-smi-newer-libdrm.patch b/gnu/packages/patches/amd-smi-newer-libdrm.patch new file mode 100644 index 00000000000..14cb7de826e --- /dev/null +++ b/gnu/packages/patches/amd-smi-newer-libdrm.patch @@ -0,0 +1,172 @@ +This commit fixes compilation of amd-smi for ROCm 7.1.1 with recent versions +of libdrm. + +Adapted from . + +From 6b32c405e1495d626a40a0ad195024220f9c08a9 Mon Sep 17 00:00:00 2001 +From: "Mario Limonciello (AMD)" +Date: Wed, 17 Dec 2025 23:59:07 -0600 +Subject: [PATCH] Fix compilation against newer libdrm + +diff --git a/include/amd_smi/impl/amd_smi_drm.h b/include/amd_smi/impl/amd_smi_drm.h +index ea6198c1187..79003546103 100644 +--- a/include/amd_smi/impl/amd_smi_drm.h ++++ b/include/amd_smi/impl/amd_smi_drm.h +@@ -26,15 +26,12 @@ + #include + + #include +-#include + #include // NOLINT + #include + + #include "amd_smi/amdsmi.h" + #include "amd_smi/impl/amd_smi_lib_loader.h" + #include "amd_smi/impl/amdgpu_drm.h" +-#include "amd_smi/impl/xf86drm.h" +-#include "amd_smi/impl/scoped_fd.h" + + namespace amd::smi { + +diff --git a/include/amd_smi/impl/amdgpu_drm.h b/include/amd_smi/impl/amdgpu_drm.h +index b56a5ac4b20..0e483d13b38 100644 +--- a/include/amd_smi/impl/amdgpu_drm.h ++++ b/include/amd_smi/impl/amdgpu_drm.h +@@ -1625,15 +1625,6 @@ struct drm_amdgpu_info_uq_metadata { + #define AMDGPU_FAMILY_GC_11_5_0 150 /* GC 11.5.0 */ + #define AMDGPU_FAMILY_GC_12_0_0 152 /* GC 12.0.0 */ + +-/* FIXME wrong namespace! */ +-struct drm_color_ctm_3x4 { +- /* +- * Conversion matrix with 3x4 dimensions in S31.32 sign-magnitude +- * (not two's complement!) format. +- */ +- __u64 matrix[12]; +-}; +- + #if defined(__cplusplus) + } + #endif +diff --git a/include/amd_smi/impl/xf86drm.h b/include/amd_smi/impl/xf86drm.h +index 04568e10083..1fbfdd0ac78 100644 +--- a/include/amd_smi/impl/xf86drm.h ++++ b/include/amd_smi/impl/xf86drm.h +@@ -34,7 +34,7 @@ + #ifndef _XF86DRM_H_ + #define _XF86DRM_H_ + +-#include ++#include + #include + #include + #ifndef __LIBDRM__ +diff --git a/src/amd_smi/amd_smi.cc b/src/amd_smi/amd_smi.cc +index 36361fd8086..560ca08309b 100644 +--- a/src/amd_smi/amd_smi.cc ++++ b/src/amd_smi/amd_smi.cc +@@ -21,11 +21,11 @@ + * THE SOFTWARE. + */ + +-#include +-#include ++#include ++#include + #include +-#include +-#include ++#include ++#include + #include + + #include +@@ -35,7 +35,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -43,11 +42,10 @@ + #include + #include + #include +-#include + + #include "config/amd_smi_config.h" + #include "amd_smi/amdsmi.h" +-#include "amd_smi/impl/fdinfo.h" ++#include "amd_smi/impl/scoped_fd.h" + #include "amd_smi/impl/amd_smi_common.h" + #include "amd_smi/impl/amd_smi_cper.h" + #include "amd_smi/impl/amd_smi_system.h" +@@ -66,7 +64,6 @@ + #include "amd_smi/impl/amd_smi_utils.h" + #include "amd_smi/impl/amd_smi_processor.h" + #include "rocm_smi/rocm_smi.h" +-#include "rocm_smi/rocm_smi_common.h" + #include "rocm_smi/rocm_smi_logger.h" + #include "rocm_smi/rocm_smi_utils.h" + #include "rocm_smi/rocm_smi_kfd.h" +diff --git a/src/amd_smi/amd_smi_drm.cc b/src/amd_smi/amd_smi_drm.cc +index de0cc7178fa..ad98f524bad 100644 +--- a/src/amd_smi/amd_smi_drm.cc ++++ b/src/amd_smi/amd_smi_drm.cc +@@ -24,11 +24,11 @@ + #include + #include + #include +-#include + #include + #include + #include "config/amd_smi_config.h" + #include "amd_smi/impl/amd_smi_drm.h" ++#include "amd_smi/impl/xf86drm.h" + #include "impl/scoped_fd.h" + #include "rocm_smi/rocm_smi.h" + #include "rocm_smi/rocm_smi_main.h" +diff --git a/src/amd_smi/amd_smi_utils.cc b/src/amd_smi/amd_smi_utils.cc +index aac3170b704..ddf2efea519 100644 +--- a/src/amd_smi/amd_smi_utils.cc ++++ b/src/amd_smi/amd_smi_utils.cc +@@ -20,17 +20,17 @@ + * THE SOFTWARE. + */ + +-#include ++#include + #include + #include + #include + #include + #include +-#include +-#include +-#include ++#include ++#include ++#include + #include +-#include ++#include + #include + #include + #include +@@ -41,14 +41,13 @@ + #include + #include + #include +-#include + #include + #include + + #include "config/amd_smi_config.h" + #include "amd_smi/impl/amd_smi_utils.h" ++#include "amd_smi/impl/scoped_fd.h" + #include "amd_smi/impl/amd_smi_system.h" +-#include "shared_mutex.h" // NOLINT + #include "rocm_smi/rocm_smi_logger.h" + #include "rocm_smi/rocm_smi_utils.h" + diff --git a/gnu/packages/rocm.scm b/gnu/packages/rocm.scm index fc519c6c6d3..c1129e67ac7 100644 --- a/gnu/packages/rocm.scm +++ b/gnu/packages/rocm.scm @@ -485,7 +485,8 @@ the system in terms of memory pools and their agents.") (base32 "10qjisjz4shsznh61in6zjjzsag49mdzj1ahclsyxhh5qvxvfrq4")) (patches - (search-patches "amd-smi-python.patch")))) + (search-patches "amd-smi-python.patch" + "amd-smi-newer-libdrm.patch")))) (build-system cmake-build-system) (arguments (list #:tests? #f ;; The test suite is empty and failing as of 25.5.1