diff options
author | Daniel Malea <daniel.malea@intel.com> | 2013-08-09 16:29:10 +0000 |
---|---|---|
committer | Daniel Malea <daniel.malea@intel.com> | 2013-08-09 16:29:10 +0000 |
commit | ec2f90c025046fc1a4008f707866441c101d773d (patch) | |
tree | a996e1a0cdff5c8a884371fcde43cbb8e53d875c | |
parent | d7cda0680a0c0f1ef402f302df22049f8062236e (diff) | |
download | bcm5719-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.txt | 2 | ||||
-rw-r--r-- | lldb/tools/debugserver/CMakeLists.txt | 3 | ||||
-rw-r--r-- | lldb/tools/debugserver/scripts/CMakeLists.txt | 14 | ||||
-rw-r--r-- | lldb/tools/debugserver/source/CMakeLists.txt | 46 | ||||
-rw-r--r-- | lldb/tools/debugserver/source/MacOSX/CMakeLists.txt | 57 | ||||
-rw-r--r-- | lldb/tools/debugserver/source/MacOSX/i386/CMakeLists.txt | 6 | ||||
-rw-r--r-- | lldb/tools/debugserver/source/MacOSX/x86_64/CMakeLists.txt | 10 | ||||
-rw-r--r-- | lldb/tools/debugserver/source/RNBDefs.h | 10 | ||||
-rw-r--r-- | lldb/tools/debugserver/source/libdebugserver.cpp | 2 |
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; |