vulkan: hide internal symbols to prevent duplicate-dlopen state destruction (llama/29139)

Since #28732 our internal symbols are exported. A duplicate copy dlopened and
dlclosed by ggml_backend_load_all() then interposes them, so its destructors
destroy the live vk_instance and later device queries hit the GGML_ASSERT on
vk_instance.device_indices. Hidden visibility exports only GGML_BACKEND_API,
as before #28732.

Fixes #29138

Assisted-by: henk:claude-fable-5
This commit is contained in:
Erik Winter
2026-09-23 20:46:47 +03:00
committed by Georgi Gerganov
parent b18bad0d49
commit fbcb94d07f
+5
View File
@@ -69,6 +69,11 @@ if (Vulkan_FOUND)
ggml-vulkan-debug.cpp
)
# hide symbols, so dlclosed duplicate copies cannot interpose them
set_target_properties(ggml-vulkan PROPERTIES
CXX_VISIBILITY_PRESET hidden
VISIBILITY_INLINES_HIDDEN ON)
set(VULKAN_SHADER_GEN_CMAKE_ARGS "")
# Test all shader extensions