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; _______________________________________________ lldb-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
