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 <pdonnell@ibm.com>
#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);