[Lldb-commits] [lldb] r188078 - Add support for building debugserver with CMake (on Mac OS X)
Daniel Malea
daniel.malea at intel.com
Fri Aug 9 09:29:10 PDT 2013
Author: dmalea
Date: Fri Aug 9 11:29:10 2013
New Revision: 188078
URL: http://llvm.org/viewvc/llvm-project?rev=188078&view=rev
Log:
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
Added:
lldb/trunk/tools/debugserver/CMakeLists.txt
lldb/trunk/tools/debugserver/scripts/CMakeLists.txt
lldb/trunk/tools/debugserver/source/CMakeLists.txt
lldb/trunk/tools/debugserver/source/MacOSX/CMakeLists.txt
lldb/trunk/tools/debugserver/source/MacOSX/i386/CMakeLists.txt
lldb/trunk/tools/debugserver/source/MacOSX/x86_64/CMakeLists.txt
Modified:
lldb/trunk/tools/CMakeLists.txt
lldb/trunk/tools/debugserver/source/RNBDefs.h
lldb/trunk/tools/debugserver/source/libdebugserver.cpp
Modified: lldb/trunk/tools/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/CMakeLists.txt?rev=188078&r1=188077&r2=188078&view=diff
==============================================================================
--- lldb/trunk/tools/CMakeLists.txt (original)
+++ lldb/trunk/tools/CMakeLists.txt Fri Aug 9 11:29:10 2013
@@ -1,2 +1,2 @@
-#add_subdirectory(debugserver)
+add_subdirectory(debugserver)
add_subdirectory(driver)
Added: lldb/trunk/tools/debugserver/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/CMakeLists.txt?rev=188078&view=auto
==============================================================================
--- lldb/trunk/tools/debugserver/CMakeLists.txt (added)
+++ lldb/trunk/tools/debugserver/CMakeLists.txt Fri Aug 9 11:29:10 2013
@@ -0,0 +1,3 @@
+project(C CXX ASM)
+add_subdirectory(scripts)
+add_subdirectory(source)
Added: lldb/trunk/tools/debugserver/scripts/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/scripts/CMakeLists.txt?rev=188078&view=auto
==============================================================================
--- lldb/trunk/tools/debugserver/scripts/CMakeLists.txt (added)
+++ lldb/trunk/tools/debugserver/scripts/CMakeLists.txt Fri Aug 9 11:29:10 2013
@@ -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}
+ )
+
Added: lldb/trunk/tools/debugserver/source/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/source/CMakeLists.txt?rev=188078&view=auto
==============================================================================
--- lldb/trunk/tools/debugserver/source/CMakeLists.txt (added)
+++ lldb/trunk/tools/debugserver/source/CMakeLists.txt Fri Aug 9 11:29:10 2013
@@ -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()
+
Added: lldb/trunk/tools/debugserver/source/MacOSX/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/source/MacOSX/CMakeLists.txt?rev=188078&view=auto
==============================================================================
--- lldb/trunk/tools/debugserver/source/MacOSX/CMakeLists.txt (added)
+++ lldb/trunk/tools/debugserver/source/MacOSX/CMakeLists.txt Fri Aug 9 11:29:10 2013
@@ -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
+ )
Added: lldb/trunk/tools/debugserver/source/MacOSX/i386/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/source/MacOSX/i386/CMakeLists.txt?rev=188078&view=auto
==============================================================================
--- lldb/trunk/tools/debugserver/source/MacOSX/i386/CMakeLists.txt (added)
+++ lldb/trunk/tools/debugserver/source/MacOSX/i386/CMakeLists.txt Fri Aug 9 11:29:10 2013
@@ -0,0 +1,6 @@
+set(LLVM_NO_RTTI 1)
+
+include_directories(${LLDB_SOURCE_DIR}/tools/debugserver/source)
+add_library(lldbDebugserverMacOSX_I386
+ DNBArchImplI386.cpp
+ )
Added: lldb/trunk/tools/debugserver/source/MacOSX/x86_64/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/source/MacOSX/x86_64/CMakeLists.txt?rev=188078&view=auto
==============================================================================
--- lldb/trunk/tools/debugserver/source/MacOSX/x86_64/CMakeLists.txt (added)
+++ lldb/trunk/tools/debugserver/source/MacOSX/x86_64/CMakeLists.txt Fri Aug 9 11:29:10 2013
@@ -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
+ )
Modified: lldb/trunk/tools/debugserver/source/RNBDefs.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/source/RNBDefs.h?rev=188078&r1=188077&r2=188078&view=diff
==============================================================================
--- lldb/trunk/tools/debugserver/source/RNBDefs.h (original)
+++ lldb/trunk/tools/debugserver/source/RNBDefs.h Fri Aug 9 11:29:10 2013
@@ -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__)
Modified: lldb/trunk/tools/debugserver/source/libdebugserver.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/source/libdebugserver.cpp?rev=188078&r1=188077&r2=188078&view=diff
==============================================================================
--- lldb/trunk/tools/debugserver/source/libdebugserver.cpp (original)
+++ lldb/trunk/tools/debugserver/source/libdebugserver.cpp Fri Aug 9 11:29:10 2013
@@ -305,7 +305,7 @@ RNBRunLoopInferiorExecuting (RNBRemoteSP
// in its current state and listen for another connection...
if (ctx.ProcessStateRunning())
{
- DNBProcessKill (ctx.ProcessID(), SIGINT);
+ DNBProcessKill (ctx.ProcessID());
}
}
mode = eRNBRunLoopModeExit;
More information about the lldb-commits
mailing list