From 2ff0eaa28fbf8ab10ea0ab262bc30ac9ae144368 Mon Sep 17 00:00:00 2001 From: Patrick Donnelly Date: Thu, 16 Jul 2026 21:30:03 -0400 Subject: [PATCH] common/lockdep: explicitly export g_lockdep visibility Aggressive Link-Time Optimization (LTO) and stricter linker defaults in newer toolchains (like GCC 13 on Ubuntu 24.04) can strip or localize external global variables if their visibility is not explicitly defined. Tagging g_lockdep with default visibility ensures it remains accessible in the dynamic symbol table for external binaries like monmaptool. Assisted-by: Gemini Fixes: https://tracker.ceph.com/issues/78321 Signed-off-by: Patrick Donnelly --- src/common/lockdep.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/lockdep.h b/src/common/lockdep.h index fe4cb52cdea..7573f464616 100644 --- a/src/common/lockdep.h +++ b/src/common/lockdep.h @@ -20,7 +20,7 @@ #ifdef CEPH_DEBUG_MUTEX -extern bool g_lockdep; +__attribute__((visibility("default"))) extern bool g_lockdep; extern void lockdep_register_ceph_context(CephContext *cct); extern void lockdep_unregister_ceph_context(CephContext *cct); -- 2.47.3