summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Malea <daniel.malea@intel.com>2013-08-09 16:29:10 +0000
committerDaniel Malea <daniel.malea@intel.com>2013-08-09 16:29:10 +0000
commitec2f90c025046fc1a4008f707866441c101d773d (patch)
treea996e1a0cdff5c8a884371fcde43cbb8e53d875c
parentd7cda0680a0c0f1ef402f302df22049f8062236e (diff)
downloadbcm5719-llvm-ec2f90c025046fc1a4008f707866441c101d773d.tar.gz
bcm5719-llvm-ec2f90c025046fc1a4008f707866441c101d773d.zip
Add support for building debugserver with CMake (on Mac OS X)
- updated RNBDefs.h to allow version numbers to be passed in via preprocessor defines - update libdebugserver.cpp to compile against latest DNBProcessKill signature Review: http://llvm-reviews.chandlerc.com/D1331 llvm-svn: 188078
-rw-r--r--lldb/tools/CMakeLists.txt2
-rw-r--r--lldb/tools/debugserver/CMakeLists.txt3
-rw-r--r--lldb/tools/debugserver/scripts/CMakeLists.txt14
-rw-r--r--lldb/tools/debugserver/source/CMakeLists.txt46
-rw-r--r--lldb/tools/debugserver/source/MacOSX/CMakeLists.txt57
-rw-r--r--lldb/tools/debugserver/source/MacOSX/i386/CMakeLists.txt6
-rw-r--r--lldb/tools/debugserver/source/MacOSX/x86_64/CMakeLists.txt10
-rw-r--r--lldb/tools/debugserver/source/RNBDefs.h10
-rw-r--r--lldb/tools/debugserver/source/libdebugserver.cpp2
9 files changed, 146 insertions, 4 deletions
diff --git a/lldb/tools/CMakeLists.txt b/lldb/tools/CMakeLists.txt
index 01d5ca9dde6..7f748c40c95 100644
--- a/lldb/tools/CMakeLists.txt
+++ b/lldb/tools/CMakeLists.txt
@@ -1,2 +1,2 @@
-#add_subdirectory(debugserver)
+add_subdirectory(debugserver)
add_subdirectory(driver)
diff --git a/lldb/tools/debugserver/CMakeLists.txt b/lldb/tools/debugserver/CMakeLists.txt
new file mode 100644
index 00000000000..5fae3063fa0
--- /dev/null
+++ b/lldb/tools/debugserver/CMakeLists.txt
@@ -0,0 +1,3 @@
+project(C CXX ASM)
+add_subdirectory(scripts)
+add_subdirectory(source)
diff --git a/lldb/tools/debugserver/scripts/CMakeLists.txt b/lldb/tools/debugserver/scripts/CMakeLists.txt
new file mode 100644
index 00000000000..da8da5ff6b8
--- /dev/null
+++ b/lldb/tools/debugserver/scripts/CMakeLists.txt
@@ -0,0 +1,14 @@
+set(LLVM_NO_RTTI 1)
+
+set(dnbconfig_builder ${CMAKE_CURRENT_SOURCE_DIR}/dbgnub-config.pl)
+set(dnbconfig_header ${LLDB_BINARY_DIR}/tools/debugserver/DNBConfig.h)
+set_source_files_properties(${dnbconfig_header} PROPERTIES GENERATED 1)
+
+add_custom_command(OUTPUT ${dnbconfig_header}
+ COMMAND SCRIPT_OUTPUT_FILE_0=${dnbconfig_header} perl ${dnbconfig_builder}
+ DEPENDS ${dnbconfig_builder}
+ )
+add_custom_target(generate_dnbconfig
+ DEPENDS ${dnbconfig_header}
+ )
+
diff --git a/lldb/tools/debugserver/source/CMakeLists.txt b/lldb/tools/debugserver/source/CMakeLists.txt
new file mode 100644
index 00000000000..f4372528fc0
--- /dev/null
+++ b/lldb/tools/debugserver/source/CMakeLists.txt
@@ -0,0 +1,46 @@
+set(LLVM_NO_RTTI 1)
+
+include_directories(${CMAKE_CURRENT_BINARY_DIR}/..)
+include_directories(${LLDB_SOURCE_DIR}/source)
+
+if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
+ include_directories(MacOSX)
+ #include_directories(${CMAKE_CURRENT_BINARY_DIR}/MacOSX)
+
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++")
+endif()
+
+add_definitions(
+ -DDEBUGSERVER_VERSION_NUM=${LLDB_VERSION}
+ -DDEBUGSERVER_VERSION_STR=${LLDB_VERSION}
+ )
+
+add_library(lldbDebugserverCommon
+ #${dnbconfig_header}
+ debugserver.cpp
+ DNBArch.cpp
+ DNBBreakpoint.cpp
+ DNB.cpp
+ DNBDataRef.cpp
+ DNBError.cpp
+ DNBLog.cpp
+ DNBRegisterInfo.cpp
+ DNBThreadResumeActions.cpp
+ libdebugserver.cpp
+ PseudoTerminal.cpp
+ PThreadEvent.cpp
+ PThreadMutex.cpp
+ RNBContext.cpp
+ RNBRemote.cpp
+ RNBServices.cpp
+ RNBSocket.cpp
+ SysSignal.cpp
+ TTYState.cpp
+ )
+
+add_dependencies(lldbDebugserverCommon generate_dnbconfig)
+
+if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
+ add_subdirectory(MacOSX)
+endif()
+
diff --git a/lldb/tools/debugserver/source/MacOSX/CMakeLists.txt b/lldb/tools/debugserver/source/MacOSX/CMakeLists.txt
new file mode 100644
index 00000000000..b955917e2e3
--- /dev/null
+++ b/lldb/tools/debugserver/source/MacOSX/CMakeLists.txt
@@ -0,0 +1,57 @@
+set(LLVM_NO_RTTI 1)
+
+#add_subdirectory(arm)
+add_subdirectory(i386)
+#add_subdirectory(ppc)
+add_subdirectory(x86_64)
+
+include_directories(..)
+
+set(generated_mach_interfaces
+ ${CMAKE_CURRENT_BINARY_DIR}/mach_exc.h
+ ${CMAKE_CURRENT_BINARY_DIR}/mach_excServer.c
+ ${CMAKE_CURRENT_BINARY_DIR}/mach_excUser.c
+ )
+add_custom_command(OUTPUT ${generated_mach_interfaces}
+ COMMAND mig -I${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/dbgnub-mig.defs
+ DEPENDS ${dnbconfig_header}
+ )
+
+set(DEBUGSERVER_USED_LIBS
+ lldbDebugserverCommon
+ lldbUtility
+ lldbDebugserverMacOSX_I386
+ lldbDebugserverMacOSX_X86_64
+ )
+
+add_lldb_executable(debugserver
+ ${dnbconfig_header}
+ HasAVX.s
+ CFBundle.cpp
+ CFData.cpp
+ CFString.cpp
+ MachException.cpp
+ MachProcess.cpp
+ MachTask.cpp
+ MachThread.cpp
+ MachThreadList.cpp
+ MachVMMemory.cpp
+ MachVMRegion.cpp
+ ${generated_mach_interfaces}
+ )
+
+add_dependencies(debugserver generate_dnbconfig)
+target_link_libraries(debugserver ${DEBUGSERVER_USED_LIBS})
+
+# Sign the debugserver binary
+set (CODESIGN_IDENTITY lldb_codesign)
+set (CODESIGN_ALLOCATE /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate)
+add_custom_command(TARGET debugserver
+ POST_BUILD
+ COMMAND CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/../debugserver-entitlements.plist --force --sign ${CODESIGN_IDENTITY} debugserver
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin
+ )
+
+install(TARGETS debugserver
+ RUNTIME DESTINATION bin
+ )
diff --git a/lldb/tools/debugserver/source/MacOSX/i386/CMakeLists.txt b/lldb/tools/debugserver/source/MacOSX/i386/CMakeLists.txt
new file mode 100644
index 00000000000..cafa2bf87c6
--- /dev/null
+++ b/lldb/tools/debugserver/source/MacOSX/i386/CMakeLists.txt
@@ -0,0 +1,6 @@
+set(LLVM_NO_RTTI 1)
+
+include_directories(${LLDB_SOURCE_DIR}/tools/debugserver/source)
+add_library(lldbDebugserverMacOSX_I386
+ DNBArchImplI386.cpp
+ )
diff --git a/lldb/tools/debugserver/source/MacOSX/x86_64/CMakeLists.txt b/lldb/tools/debugserver/source/MacOSX/x86_64/CMakeLists.txt
new file mode 100644
index 00000000000..5d5da622506
--- /dev/null
+++ b/lldb/tools/debugserver/source/MacOSX/x86_64/CMakeLists.txt
@@ -0,0 +1,10 @@
+set(LLVM_NO_RTTI 1)
+
+# Due to sources including headers like:
+# #include "MacOSX/i386/DNBArchImplI386.h"
+# we must include the grandparent directory...
+include_directories(${LLDB_SOURCE_DIR}/tools/debugserver/source)
+
+add_library(lldbDebugserverMacOSX_X86_64
+ DNBArchImplX86_64.cpp
+ )
diff --git a/lldb/tools/debugserver/source/RNBDefs.h b/lldb/tools/debugserver/source/RNBDefs.h
index 9b9379ecc4f..6611c09997f 100644
--- a/lldb/tools/debugserver/source/RNBDefs.h
+++ b/lldb/tools/debugserver/source/RNBDefs.h
@@ -17,11 +17,17 @@
#include "DNBDefs.h"
#include <memory>
+#define DEBUGSERVER_PROGRAM_NAME "debugserver"
+
+#ifndef DEBUGSERVER_VERSION_NUM
extern "C" const unsigned char debugserverVersionString[];
+#define DEBUGSERVER_VERSION_NUM debugserverVersionNumber
+#endif
+
+#ifndef DEBUGSERVER_VERSION_STR
extern "C" const double debugserverVersionNumber;
-#define DEBUGSERVER_PROGRAM_NAME "debugserver"
#define DEBUGSERVER_VERSION_STR debugserverVersionString
-#define DEBUGSERVER_VERSION_NUM debugserverVersionNumber
+#endif
#if defined (__i386__)
diff --git a/lldb/tools/debugserver/source/libdebugserver.cpp b/lldb/tools/debugserver/source/libdebugserver.cpp
index ab625fb8d23..e1cf7c588f8 100644
--- a/lldb/tools/debugserver/source/libdebugserver.cpp
+++ b/lldb/tools/debugserver/source/libdebugserver.cpp
@@ -305,7 +305,7 @@ RNBRunLoopInferiorExecuting (RNBRemoteSP &remote)
// in its current state and listen for another connection...
if (ctx.ProcessStateRunning())
{
- DNBProcessKill (ctx.ProcessID(), SIGINT);
+ DNBProcessKill (ctx.ProcessID());
}
}
mode = eRNBRunLoopModeExit;
OpenPOWER on IntegriCloud