diff --git a/lldb/cmake/modules/AddLLDB.cmake b/lldb/cmake/modules/AddLLDB.cmake --- a/lldb/cmake/modules/AddLLDB.cmake +++ b/lldb/cmake/modules/AddLLDB.cmake @@ -165,6 +165,15 @@ else() set_target_properties(${name} PROPERTIES FOLDER "lldb libraries") endif() + + # If we want to export all lldb symbols (i.e LLDB_EXPORT_ALL_SYMBOLS=ON), we + # need to use default visibility for all LLDB symbols even if a global + # `CMAKE_CXX_VISIBILITY_PRESET=hidden`is present. + if (LLDB_EXPORT_ALL_SYMBOLS) + if (CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU") + target_compile_options(${name} PRIVATE "-fvisibility=default") + endif() + endif() endfunction(add_lldb_library) function(add_lldb_executable name)