[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