Support of lldb on Kfreebsd
Summary: Patch by Pino Toscano. Reported in http://bugs.debian.org/835665
Reviewers: tfiala, emaste
Subscribers: beanz, mgorny, emaste, krytarowski, brucem, tberghammer, danalbert, srhines, #lldb
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D23977
llvm-svn: 290044
diff --git a/lldb/cmake/LLDBDependencies.cmake b/lldb/cmake/LLDBDependencies.cmake
index 223a39e..e12a522 100644
--- a/lldb/cmake/LLDBDependencies.cmake
+++ b/lldb/cmake/LLDBDependencies.cmake
@@ -161,10 +161,7 @@
list(APPEND LLDB_SYSTEM_LIBS atomic)
endif()
-# On FreeBSD/NetBSD backtrace() is provided by libexecinfo, not libc.
-if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR CMAKE_SYSTEM_NAME MATCHES "NetBSD")
- list(APPEND LLDB_SYSTEM_LIBS execinfo)
-endif()
+list(APPEND LLDB_SYSTEM_LIBS ${Backtrace_LIBRARY})
if (NOT LLDB_DISABLE_PYTHON AND NOT LLVM_BUILD_STATIC)
list(APPEND LLDB_SYSTEM_LIBS ${PYTHON_LIBRARIES})
diff --git a/lldb/cmake/modules/LLDBConfig.cmake b/lldb/cmake/modules/LLDBConfig.cmake
index fe2deeb..74d6e74 100644
--- a/lldb/cmake/modules/LLDBConfig.cmake
+++ b/lldb/cmake/modules/LLDBConfig.cmake
@@ -416,3 +416,5 @@
if(LLDB_USE_BUILTIN_DEMANGLER)
add_definitions(-DLLDB_USE_BUILTIN_DEMANGLER)
endif()
+
+find_package(Backtrace)
diff --git a/lldb/scripts/Python/modules/CMakeLists.txt b/lldb/scripts/Python/modules/CMakeLists.txt
index 01ab577..cef7063 100644
--- a/lldb/scripts/Python/modules/CMakeLists.txt
+++ b/lldb/scripts/Python/modules/CMakeLists.txt
@@ -6,6 +6,6 @@
endif ()
# build the Python readline suppression module only on Linux
-if (CMAKE_SYSTEM_NAME MATCHES "Linux")
+if (CMAKE_SYSTEM_NAME MATCHES "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "GNU" OR CMAKE_SYSTEM_NAME STREQUAL "kFreeBSD")
add_subdirectory(readline)
endif()
diff --git a/lldb/scripts/utilsOsType.py b/lldb/scripts/utilsOsType.py
index fe3552e..5f4a052 100644
--- a/lldb/scripts/utilsOsType.py
+++ b/lldb/scripts/utilsOsType.py
@@ -36,6 +36,7 @@
Linux = 3
NetBSD = 4
Windows = 5
+ kFreeBSD = 6
else:
class EnumOsType(object):
values = ["Unknown",
@@ -43,7 +44,8 @@
"FreeBSD",
"Linux",
"NetBSD",
- "Windows"]
+ "Windows",
+ "kFreeBSD"]
class __metaclass__(type):
#++----------------------------------------------------------------
@@ -91,5 +93,7 @@
eOSType = EnumOsType.NetBSD
elif strOS == "win32":
eOSType = EnumOsType.Windows
+ elif strOS.startswith("gnukfreebsd"):
+ eOSType = EnumOsType.kFreeBSD
return eOSType