From db2c6b20ca39231c1d45ad2cb3bc0b0d930d9af7 Mon Sep 17 00:00:00 2001 From: Valery Bitsoev Date: Wed, 2 Apr 2025 12:53:04 +0200 Subject: [PATCH] fallback for libdcgm.so datacenter-gpu-manager v4 provides file libdcgm.so.4, but older version - libdcgm.so To support backward compatibility we should fallback to libdcgm.so if libdcgm.so.4 isn't available --- pkg/dcgm/admin.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pkg/dcgm/admin.go b/pkg/dcgm/admin.go index f0fe715..f3f9a98 100644 --- a/pkg/dcgm/admin.go +++ b/pkg/dcgm/admin.go @@ -58,14 +58,20 @@ var ( func initDCGM(m mode, args ...string) (err error) { const ( - dcgmLib = "libdcgm.so.4" + dcgmLib = "libdcgm.so.4" + dcgmLibFallback = "libdcgm.so" ) lib := C.CString(dcgmLib) defer freeCString(lib) dcgmLibHandle = C.dlopen(lib, C.RTLD_LAZY|C.RTLD_GLOBAL) if dcgmLibHandle == nil { - return fmt.Errorf("%s not found", dcgmLib) + fallbackLib := C.CString(dcgmLibFallback) + defer freeCString(fallbackLib) + dcgmLibHandle = C.dlopen(fallbackLib, C.RTLD_LAZY|C.RTLD_GLOBAL) + if dcgmLibHandle == nil { + return fmt.Errorf("%s or %s not found", dcgmLib, dcgmLibFallback) + } } // set the stopMode for shutdown()