From 47b071deff324a76d85280c7ddb7e5dbc7668110 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 17 Dec 2016 12:48:06 +0000 Subject: [PATCH] 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 --- lldb/cmake/LLDBDependencies.cmake | 5 +---- lldb/cmake/modules/LLDBConfig.cmake | 2 ++ lldb/scripts/Python/modules/CMakeLists.txt | 2 +- lldb/scripts/utilsOsType.py | 6 +++++- 4 files changed, 9 insertions(+), 6 deletions(-) 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 @@ if (NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB ) 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 @@ endif() 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 @@ if (CXX_SUPPORTS_NO_MACRO_REDEFINED) 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 @@ if sys.version_info.major >= 3: Linux = 3 NetBSD = 4 Windows = 5 + kFreeBSD = 6 else: class EnumOsType(object): values = ["Unknown", @@ -43,7 +44,8 @@ else: "FreeBSD", "Linux", "NetBSD", - "Windows"] + "Windows", + "kFreeBSD"] class __metaclass__(type): #++---------------------------------------------------------------- @@ -91,5 +93,7 @@ def determine_os_type(): eOSType = EnumOsType.NetBSD elif strOS == "win32": eOSType = EnumOsType.Windows + elif strOS.startswith("gnukfreebsd"): + eOSType = EnumOsType.kFreeBSD return eOSType -- 2.7.4