[Lldb-commits] [lldb] r221570 - LLGS Android target support - for Andy Chien : http://reviews.llvm.org/D6166
Shawn Best
sbest at blueshiftinc.com
Fri Nov 7 17:41:50 PST 2014
Author: sbest
Date: Fri Nov 7 19:41:49 2014
New Revision: 221570
URL: http://llvm.org/viewvc/llvm-project?rev=221570&view=rev
Log:
LLGS Android target support - for Andy Chien : http://reviews.llvm.org/D6166
Modified:
lldb/trunk/CMakeLists.txt
lldb/trunk/include/lldb/Core/RegularExpression.h
lldb/trunk/include/lldb/Host/Config.h
lldb/trunk/include/lldb/Host/Editline.h
lldb/trunk/include/lldb/lldb-private.h
lldb/trunk/scripts/Python/modules/CMakeLists.txt
lldb/trunk/source/CMakeLists.txt
lldb/trunk/source/Core/ConnectionSharedMemory.cpp
lldb/trunk/source/DataFormatters/CXXFormatterFunctions.cpp
lldb/trunk/source/Host/CMakeLists.txt
lldb/trunk/source/Host/common/File.cpp
lldb/trunk/source/Host/common/Host.cpp
lldb/trunk/source/Host/common/Socket.cpp
lldb/trunk/source/Host/linux/Host.cpp
lldb/trunk/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp
lldb/trunk/source/Plugins/Platform/Linux/PlatformLinux.cpp
lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp
lldb/trunk/source/Plugins/Process/Linux/ProcessMonitor.cpp
lldb/trunk/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.cpp
lldb/trunk/source/Utility/PseudoTerminal.cpp
lldb/trunk/tools/CMakeLists.txt
lldb/trunk/tools/driver/Driver.cpp
lldb/trunk/tools/driver/Platform.h
lldb/trunk/tools/lldb-gdbserver/CMakeLists.txt
Modified: lldb/trunk/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/CMakeLists.txt?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/CMakeLists.txt (original)
+++ lldb/trunk/CMakeLists.txt Fri Nov 7 19:41:49 2014
@@ -7,9 +7,15 @@ if ( CMAKE_SYSTEM_NAME MATCHES "Windows"
set(LLDB_DEFAULT_ENABLE_PYTHON_SCRIPTS_SWIG_API_GENERATION 1)
endif()
else()
- set(LLDB_DEFAULT_DISABLE_PYTHON 0)
- set(LLDB_DEFAULT_DISABLE_CURSES 0)
- set(LLDB_DEFAULT_ENABLE_PYTHON_SCRIPTS_SWIG_API_GENERATION 0)
+ if ( __ANDROID_NDK__ )
+ set(LLDB_DEFAULT_DISABLE_PYTHON 1)
+ set(LLDB_DEFAULT_DISABLE_CURSES 1)
+ set(LLDB_DEFAULT_ENABLE_PYTHON_SCRIPTS_SWIG_API_GENERATION 0)
+ else()
+ set(LLDB_DEFAULT_DISABLE_PYTHON 0)
+ set(LLDB_DEFAULT_DISABLE_CURSES 0)
+ set(LLDB_DEFAULT_ENABLE_PYTHON_SCRIPTS_SWIG_API_GENERATION 0)
+ endif()
endif()
set(LLDB_DISABLE_PYTHON ${LLDB_DEFAULT_DISABLE_PYTHON} CACHE BOOL
"Disables the Python scripting integration.")
@@ -115,8 +121,14 @@ macro(add_lldb_definitions)
endmacro(add_lldb_definitions)
if (NOT LLDB_DISABLE_PYTHON)
- find_package(PythonLibs REQUIRED)
- include_directories(${PYTHON_INCLUDE_DIRS})
+ if(UNIX)
+ # This is necessary for crosscompile on Ubuntu 14.04 64bit. Need a proper fix.
+ if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+ endif()
+ endif()
+ find_package(PythonLibs REQUIRED)
+ include_directories(${PYTHON_INCLUDE_DIRS})
endif()
include_directories(../clang/include)
Modified: lldb/trunk/include/lldb/Core/RegularExpression.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/RegularExpression.h?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Core/RegularExpression.h (original)
+++ lldb/trunk/include/lldb/Core/RegularExpression.h Fri Nov 7 19:41:49 2014
@@ -39,6 +39,9 @@ inline void regfree(llvm_regex_t * a)
}
#else
+#if __ANDROID_NDK__
+#include <regex>
+#endif
#include <regex.h>
#endif
#include <stdint.h>
Modified: lldb/trunk/include/lldb/Host/Config.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/Config.h?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Host/Config.h (original)
+++ lldb/trunk/include/lldb/Host/Config.h Fri Nov 7 19:41:49 2014
@@ -14,6 +14,10 @@
#include "lldb/Host/macosx/Config.h"
+#elif defined(__ANDROID_NDK__)
+
+#include "lldb/Host/android/Config.h"
+
#elif defined(__linux__) || defined(__GNU__)
#include "lldb/Host/linux/Config.h"
Modified: lldb/trunk/include/lldb/Host/Editline.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/Editline.h?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Host/Editline.h (original)
+++ lldb/trunk/include/lldb/Host/Editline.h Fri Nov 7 19:41:49 2014
@@ -14,11 +14,13 @@
#include "lldb/lldb-private.h"
#include <stdio.h>
-#ifdef _WIN32
+#if defined(_WIN32)
#include "lldb/Host/windows/editlinewin.h"
#else
+#if !defined(__ANDROID_NDK__)
#include <histedit.h>
#endif
+#endif
#include <string>
#include <vector>
Modified: lldb/trunk/include/lldb/lldb-private.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/lldb-private.h?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/include/lldb/lldb-private.h (original)
+++ lldb/trunk/include/lldb/lldb-private.h Fri Nov 7 19:41:49 2014
@@ -16,6 +16,10 @@
#include "lldb/Host/windows/win32.h"
#endif
+#ifdef __ANDROID_NDK__
+#include "lldb/Host/android/Android.h"
+#endif
+
#include "lldb/lldb-public.h"
#include "lldb/lldb-private-enumerations.h"
#include "lldb/lldb-private-interfaces.h"
Modified: lldb/trunk/scripts/Python/modules/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/Python/modules/CMakeLists.txt?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/scripts/Python/modules/CMakeLists.txt (original)
+++ lldb/trunk/scripts/Python/modules/CMakeLists.txt Fri Nov 7 19:41:49 2014
@@ -1,4 +1,4 @@
# build the Python readline suppression module only on Linux
-if (CMAKE_SYSTEM_NAME MATCHES "Linux")
+if (CMAKE_SYSTEM_NAME MATCHES "Linux" AND NOT __ANDROID_NDK__)
add_subdirectory(readline)
endif()
Modified: lldb/trunk/source/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/CMakeLists.txt?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/source/CMakeLists.txt (original)
+++ lldb/trunk/source/CMakeLists.txt Fri Nov 7 19:41:49 2014
@@ -31,182 +31,8 @@ add_subdirectory(Symbol)
add_subdirectory(Target)
add_subdirectory(Utility)
-set( LLDB_USED_LIBS
- lldbBreakpoint
- lldbCommands
- lldbDataFormatters
- lldbHost
- lldbCore
- lldbExpression
- lldbInterpreter
- lldbSymbol
- lldbTarget
- lldbUtility
+include(../cmake/LLDBDependencies.cmake)
- # Plugins
- lldbPluginDisassemblerLLVM
- lldbPluginSymbolFileDWARF
- lldbPluginSymbolFileSymtab
- lldbPluginDynamicLoaderStatic
- lldbPluginDynamicLoaderPosixDYLD
- lldbPluginDynamicLoaderHexagonDYLD
-
- lldbPluginObjectFileMachO
- lldbPluginObjectFileELF
- lldbPluginObjectFileJIT
- lldbPluginSymbolVendorELF
- lldbPluginObjectContainerBSDArchive
- lldbPluginObjectContainerMachOArchive
- lldbPluginProcessGDBRemote
- lldbPluginProcessMachCore
- lldbPluginProcessUtility
- lldbPluginPlatformGDB
- lldbPluginPlatformFreeBSD
- lldbPluginPlatformKalimba
- lldbPluginPlatformLinux
- lldbPluginPlatformPOSIX
- lldbPluginPlatformWindows
- lldbPluginObjectFileMachO
- lldbPluginObjectContainerMachOArchive
- lldbPluginObjectContainerBSDArchive
- lldbPluginPlatformMacOSX
- lldbPluginDynamicLoaderMacOSXDYLD
- lldbPluginUnwindAssemblyInstEmulation
- lldbPluginUnwindAssemblyX86
- lldbPluginAppleObjCRuntime
- lldbPluginCXXItaniumABI
- lldbPluginABIMacOSX_arm
- lldbPluginABIMacOSX_arm64
- lldbPluginABIMacOSX_i386
- lldbPluginABISysV_x86_64
- lldbPluginABISysV_hexagon
- lldbPluginABISysV_ppc
- lldbPluginABISysV_ppc64
- lldbPluginInstructionARM
- lldbPluginInstructionARM64
- lldbPluginObjectFilePECOFF
- lldbPluginOSPython
- lldbPluginMemoryHistoryASan
- lldbPluginInstrumentationRuntimeAddressSanitizer
- )
-
-# Need to export the API in the liblldb.dll for Windows
-# The lldbAPI source files are added directly in liblldb
-if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows" )
- list(APPEND LLDB_USED_LIBS
- lldbAPI
- )
-endif ()
-
-# Windows-only libraries
-if ( CMAKE_SYSTEM_NAME MATCHES "Windows" )
- list(APPEND LLDB_USED_LIBS
- lldbPluginProcessWindows
- lldbPluginProcessElfCore
- lldbPluginJITLoaderGDB
- Ws2_32
- )
-endif ()
-
-# Linux-only libraries
-if ( CMAKE_SYSTEM_NAME MATCHES "Linux" )
- list(APPEND LLDB_USED_LIBS
- lldbPluginProcessLinux
- lldbPluginProcessPOSIX
- lldbPluginProcessElfCore
- lldbPluginJITLoaderGDB
- )
-endif ()
-
-# FreeBSD-only libraries
-if ( CMAKE_SYSTEM_NAME MATCHES "FreeBSD" )
- list(APPEND LLDB_USED_LIBS
- lldbPluginProcessFreeBSD
- lldbPluginProcessPOSIX
- lldbPluginProcessElfCore
- lldbPluginJITLoaderGDB
- )
-endif ()
-
-# Darwin-only libraries
-if ( CMAKE_SYSTEM_NAME MATCHES "Darwin" )
- set(LLDB_VERS_GENERATED_FILE ${LLDB_BINARY_DIR}/source/LLDB_vers.c)
- add_custom_command(OUTPUT ${LLDB_VERS_GENERATED_FILE}
- COMMAND ${LLDB_SOURCE_DIR}/scripts/generate-vers.pl
- ${LLDB_SOURCE_DIR}/lldb.xcodeproj/project.pbxproj liblldb_core
- > ${LLDB_VERS_GENERATED_FILE})
-
- set_source_files_properties(${LLDB_VERS_GENERATED_FILE} PROPERTIES GENERATED 1)
- list(APPEND LLDB_USED_LIBS
- lldbPluginDynamicLoaderDarwinKernel
- lldbPluginProcessMacOSXKernel
- lldbPluginSymbolVendorMacOSX
- lldbPluginSystemRuntimeMacOSX
- lldbPluginProcessElfCore
- lldbPluginJITLoaderGDB
- )
-endif()
-
-set( CLANG_USED_LIBS
- clangAnalysis
- clangAST
- clangBasic
- clangCodeGen
- clangDriver
- clangEdit
- clangFrontend
- clangLex
- clangParse
- clangRewrite
- clangRewriteFrontend
- clangSema
- clangSerialization
- )
-
-set(LLDB_SYSTEM_LIBS)
-if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows")
- list(APPEND LLDB_SYSTEM_LIBS edit panel ncurses)
-endif()
-# On FreeBSD backtrace() is provided by libexecinfo, not libc.
-if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
- list(APPEND LLDB_SYSTEM_LIBS execinfo)
-endif()
-
-if (NOT LLDB_DISABLE_PYTHON)
- list(APPEND LLDB_SYSTEM_LIBS ${PYTHON_LIBRARIES})
-endif()
-
-list(APPEND LLDB_SYSTEM_LIBS ${system_libs})
-
-set( LLVM_LINK_COMPONENTS
- ${LLVM_TARGETS_TO_BUILD}
- interpreter
- asmparser
- bitreader
- bitwriter
- codegen
- ipo
- selectiondag
- bitreader
- mc
- mcjit
- core
- mcdisassembler
- executionengine
- option
- )
-
-
-if ( NOT LLDB_DISABLE_PYTHON )
- set(LLDB_WRAP_PYTHON ${LLDB_BINARY_DIR}/scripts/LLDBWrapPython.cpp)
-
- set_source_files_properties(${LLDB_WRAP_PYTHON} PROPERTIES GENERATED 1)
- if (LLVM_COMPILER_IS_GCC_COMPATIBLE AND
- NOT "${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")
- set_property(SOURCE ${LLDB_WRAP_PYTHON}
- APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-sequence-point")
- endif ()
-endif()
set(SHARED_LIBRARY 1)
if ( CMAKE_SYSTEM_NAME MATCHES "Windows" )
Modified: lldb/trunk/source/Core/ConnectionSharedMemory.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/ConnectionSharedMemory.cpp?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/source/Core/ConnectionSharedMemory.cpp (original)
+++ lldb/trunk/source/Core/ConnectionSharedMemory.cpp Fri Nov 7 19:41:49 2014
@@ -6,6 +6,7 @@
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
+#ifndef __ANDROID_NDK__
#include "lldb/Core/ConnectionSharedMemory.h"
@@ -156,3 +157,4 @@ ConnectionSharedMemory::Open (bool creat
return eConnectionStatusError;
}
+#endif // __ANDROID_NDK__
Modified: lldb/trunk/source/DataFormatters/CXXFormatterFunctions.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/DataFormatters/CXXFormatterFunctions.cpp?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/source/DataFormatters/CXXFormatterFunctions.cpp (original)
+++ lldb/trunk/source/DataFormatters/CXXFormatterFunctions.cpp Fri Nov 7 19:41:49 2014
@@ -27,6 +27,9 @@
#include "lldb/Utility/ProcessStructReader.h"
#include <algorithm>
+#if __ANDROID_NDK__
+#include <sys/types.h>
+#endif
using namespace lldb;
using namespace lldb_private;
Modified: lldb/trunk/source/Host/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/CMakeLists.txt?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/source/Host/CMakeLists.txt (original)
+++ lldb/trunk/source/Host/CMakeLists.txt Fri Nov 7 19:41:49 2014
@@ -5,7 +5,6 @@ endmacro()
add_host_subdirectory(common
common/Condition.cpp
- common/Editline.cpp
common/File.cpp
common/FileCache.cpp
common/FileSpec.cpp
@@ -33,6 +32,12 @@ add_host_subdirectory(common
common/TimeValue.cpp
)
+if (NOT __ANDROID_NDK__)
+add_host_subdirectory(common
+ common/Editline.cpp
+ )
+endif()
+
add_host_subdirectory(posix
posix/ConnectionFileDescriptorPosix.cpp
)
@@ -81,12 +86,21 @@ else()
)
elseif (CMAKE_SYSTEM_NAME MATCHES "Linux")
- add_host_subdirectory(linux
- linux/Host.cpp
- linux/HostInfoLinux.cpp
- linux/HostThreadLinux.cpp
- linux/ThisThread.cpp
- )
+ if (__ANDROID_NDK__)
+ add_host_subdirectory(android
+ linux/Host.cpp
+ linux/HostInfoLinux.cpp
+ linux/HostThreadLinux.cpp
+ linux/ThisThread.cpp
+ )
+ else()
+ add_host_subdirectory(linux
+ linux/Host.cpp
+ linux/HostInfoLinux.cpp
+ linux/HostThreadLinux.cpp
+ linux/ThisThread.cpp
+ )
+ endif()
elseif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
add_host_subdirectory(freebsd
freebsd/Host.cpp
Modified: lldb/trunk/source/Host/common/File.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/File.cpp?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/source/Host/common/File.cpp (original)
+++ lldb/trunk/source/Host/common/File.cpp Fri Nov 7 19:41:49 2014
@@ -896,7 +896,7 @@ File::CalculateInteractiveAndTerminal ()
{
m_is_interactive = eLazyBoolNo;
m_is_real_terminal = eLazyBoolNo;
-#ifdef _WIN32
+#if (defined(_WIN32) || defined(__ANDROID_NDK__))
if (_isatty(fd))
{
m_is_interactive = eLazyBoolYes;
Modified: lldb/trunk/source/Host/common/Host.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/Host.cpp?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/source/Host/common/Host.cpp (original)
+++ lldb/trunk/source/Host/common/Host.cpp Fri Nov 7 19:41:49 2014
@@ -30,7 +30,7 @@
#endif
#if defined (__linux__) || defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__) || defined(__NetBSD__)
-#ifndef __ANDROID__
+#if !defined(__ANDROID__) && !defined(__ANDROID_NDK__)
#include <spawn.h>
#endif
#include <sys/wait.h>
@@ -111,7 +111,7 @@ Host::StartMonitoringChildProcess(Host::
return ThreadLauncher::LaunchThread(thread_name, MonitorChildProcessThreadFunction, info_ptr, NULL);
}
-#ifndef __ANDROID__
+#if !defined(__ANDROID__) && !defined(__ANDROID_NDK__)
//------------------------------------------------------------------
// Scoped class that will disable thread canceling when it is
// constructed, and exception safely restore the previous value it
@@ -126,7 +126,6 @@ public:
int err = ::pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &m_old_state);
if (err != 0)
m_old_state = -1;
-
}
~ScopedPThreadCancelDisabler()
@@ -139,7 +138,7 @@ public:
private:
int m_old_state; // Save the old cancelability state.
};
-#endif
+#endif // __ANDROID_NDK__
static thread_result_t
MonitorChildProcessThreadFunction (void *arg)
@@ -173,15 +172,14 @@ MonitorChildProcessThreadFunction (void
log->Printf("%s ::wait_pid (pid = %" PRIi32 ", &status, options = %i)...", function, pid, options);
// Wait for all child processes
-#ifndef __ANDROID__
+#if !defined(__ANDROID__) && !defined(__ANDROID_NDK__)
::pthread_testcancel ();
#endif
// Get signals from all children with same process group of pid
const ::pid_t wait_pid = ::waitpid (pid, &status, options);
-#ifndef __ANDROID__
+#if !defined(__ANDROID__) && !defined(__ANDROID_NDK__)
::pthread_testcancel ();
#endif
-
if (wait_pid == -1)
{
if (errno == EINTR)
@@ -226,7 +224,7 @@ MonitorChildProcessThreadFunction (void
// Scope for pthread_cancel_disabler
{
-#ifndef __ANDROID__
+#if !defined(__ANDROID__) && !defined(__ANDROID_NDK__)
ScopedPThreadCancelDisabler pthread_cancel_disabler;
#endif
@@ -316,6 +314,8 @@ Host::GetCurrentThreadID()
return thread_self;
#elif defined(__FreeBSD__)
return lldb::tid_t(pthread_getthreadid_np());
+#elif defined(__ANDROID_NDK__)
+ return lldb::tid_t(gettid());
#elif defined(__linux__)
return lldb::tid_t(syscall(SYS_gettid));
#else
@@ -456,7 +456,7 @@ FileSpec
Host::GetModuleFileSpecForHostAddress (const void *host_addr)
{
FileSpec module_filespec;
-#ifndef __ANDROID__
+#if !defined(__ANDROID__) && !defined(__ANDROID_NDK__)
Dl_info info;
if (::dladdr (host_addr, &info))
{
@@ -694,14 +694,13 @@ Host::RunShellCommand (const char *comma
// systems
#if defined (__APPLE__) || defined (__linux__) || defined (__FreeBSD__) || defined (__GLIBC__) || defined(__NetBSD__)
-
// this method needs to be visible to macosx/Host.cpp and
// common/Host.cpp.
short
Host::GetPosixspawnFlags(const ProcessLaunchInfo &launch_info)
{
-#ifndef __ANDROID__
+#if !defined(__ANDROID__) && !defined(__ANDROID_NDK__)
short flags = POSIX_SPAWN_SETSIGDEF | POSIX_SPAWN_SETSIGMASK;
#if defined (__APPLE__)
@@ -745,7 +744,7 @@ Host::GetPosixspawnFlags(const ProcessLa
#endif // #if defined (__APPLE__)
return flags;
#else
- assert(false *&& "Host::GetPosixspawnFlags() not supported on Android");
+ assert(false && "Host::GetPosixspawnFlags() not supported on Android");
return 0;
#endif
}
@@ -754,7 +753,7 @@ Error
Host::LaunchProcessPosixSpawn(const char *exe_path, const ProcessLaunchInfo &launch_info, lldb::pid_t &pid)
{
Error error;
-#ifndef __ANDROID__
+#if !defined(__ANDROID__) && !defined(__ANDROID_NDK__)
Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_HOST | LIBLLDB_LOG_PROCESS));
posix_spawnattr_t attr;
@@ -954,7 +953,7 @@ Host::LaunchProcessPosixSpawn(const char
bool
Host::AddPosixSpawnFileAction(void *_file_actions, const FileAction *info, Log *log, Error &error)
{
-#ifndef __ANDROID__
+#if !defined(__ANDROID__) && !defined(__ANDROID_NDK__)
if (info == NULL)
return false;
@@ -1022,7 +1021,6 @@ Host::AddPosixSpawnFileAction(void *_fil
return false;
#endif
}
-
#endif // LaunchProcedssPosixSpawn: Apple, Linux, FreeBSD and other GLIBC systems
#if defined(__linux__) || defined(__FreeBSD__) || defined(__GLIBC__) || defined(__NetBSD__) || defined(_WIN32)
@@ -1049,11 +1047,9 @@ Host::LaunchProcess (ProcessLaunchInfo &
return error;
}
-
#endif // defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
#ifndef _WIN32
-
void
Host::Kill(lldb::pid_t pid, int signo)
{
Modified: lldb/trunk/source/Host/common/Socket.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/Socket.cpp?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/source/Host/common/Socket.cpp (original)
+++ lldb/trunk/source/Host/common/Socket.cpp Fri Nov 7 19:41:49 2014
@@ -18,6 +18,14 @@
#include "lldb/Host/TimeValue.h"
#include "lldb/Interpreter/Args.h"
+#ifdef __ANDROID_NDK__
+#include <linux/tcp.h>
+#include <bits/error_constants.h>
+#include <asm-generic/errno-base.h>
+#include <errno.h>
+#include <arpa/inet.h>
+#endif
+
#ifndef LLDB_DISABLE_POSIX
#include <arpa/inet.h>
#include <netdb.h>
Modified: lldb/trunk/source/Host/linux/Host.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/linux/Host.cpp?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/source/Host/linux/Host.cpp (original)
+++ lldb/trunk/source/Host/linux/Host.cpp Fri Nov 7 19:41:49 2014
@@ -26,6 +26,9 @@
#include "lldb/Target/Process.h"
#include "lldb/Host/Host.h"
+#ifdef __ANDROID_NDK__
+#include "lldb/Host/android/Android.h"
+#endif
#include "lldb/Core/DataBufferHeap.h"
#include "lldb/Core/DataExtractor.h"
Modified: lldb/trunk/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp (original)
+++ lldb/trunk/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp Fri Nov 7 19:41:49 2014
@@ -9,7 +9,7 @@
#include "ObjectContainerBSDArchive.h"
-#ifdef _WIN32
+#if defined(_WIN32) || defined(__ANDROID_NDK__)
// Defines from ar, missing on Windows
#define ARMAG "!<arch>\n"
#define SARMAG 8
Modified: lldb/trunk/source/Plugins/Platform/Linux/PlatformLinux.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/Linux/PlatformLinux.cpp?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Platform/Linux/PlatformLinux.cpp (original)
+++ lldb/trunk/source/Plugins/Platform/Linux/PlatformLinux.cpp Fri Nov 7 19:41:49 2014
@@ -820,7 +820,7 @@ PlatformLinux::LaunchNativeProcess (
lldb_private::NativeProcessProtocol::NativeDelegate &native_delegate,
NativeProcessProtocolSP &process_sp)
{
-#if !defined(__linux__)
+#if !defined(__linux__) || defined(__ANDROID_NDK__)
return Error("only implemented on Linux hosts");
#else
if (!IsHost ())
@@ -857,7 +857,7 @@ PlatformLinux::AttachNativeProcess (lldb
lldb_private::NativeProcessProtocol::NativeDelegate &native_delegate,
NativeProcessProtocolSP &process_sp)
{
-#if !defined(__linux__)
+#if !defined(__linux__) || defined(__ANDROID_NDK__)
return Error("only implemented on Linux hosts");
#else
if (!IsHost ())
Modified: lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp Fri Nov 7 19:41:49 2014
@@ -18,7 +18,13 @@
#include <stdint.h>
#include <unistd.h>
#include <linux/unistd.h>
+#if defined(__ANDROID_NDK__) && defined (__arm__)
+#include <linux/personality.h>
+#include <linux/user.h>
+#else
#include <sys/personality.h>
+#include <sys/user.h>
+#endif
#ifndef __ANDROID__
#include <sys/procfs.h>
#endif
@@ -27,7 +33,6 @@
#include <sys/socket.h>
#include <sys/syscall.h>
#include <sys/types.h>
-#include <sys/user.h>
#include <sys/wait.h>
#if defined (__arm64__) || defined (__aarch64__)
Modified: lldb/trunk/source/Plugins/Process/Linux/ProcessMonitor.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Linux/ProcessMonitor.cpp?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Linux/ProcessMonitor.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Linux/ProcessMonitor.cpp Fri Nov 7 19:41:49 2014
@@ -16,7 +16,13 @@
#include <stdint.h>
#include <unistd.h>
#include <elf.h>
+#if defined(__ANDROID_NDK__) && defined (__arm__)
+#include <linux/personality.h>
+#include <linux/user.h>
+#else
#include <sys/personality.h>
+#include <sys/user.h>
+#endif
#ifndef __ANDROID__
#include <sys/procfs.h>
#endif
@@ -25,7 +31,6 @@
#include <sys/socket.h>
#include <sys/syscall.h>
#include <sys/types.h>
-#include <sys/user.h>
#include <sys/wait.h>
// C++ Includes
Modified: lldb/trunk/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.cpp?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.cpp Fri Nov 7 19:41:49 2014
@@ -150,7 +150,7 @@ RegisterContextMacOSXFrameBackchain::Rea
// TOOD: need a better way to detect when "long double" types are
// the same bytes size as "double"
#if !defined(__arm__) && !defined(__arm64__) && !defined(__aarch64__) && !defined(_MSC_VER) && \
- !defined(__mips__) && !defined(__powerpc__)
+ !defined(__mips__) && !defined(__powerpc__) && !defined(__ANDROID_NDK__)
case sizeof (long double):
if (sizeof (long double) == sizeof(uint32_t))
{
Modified: lldb/trunk/source/Utility/PseudoTerminal.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/PseudoTerminal.cpp?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/source/Utility/PseudoTerminal.cpp (original)
+++ lldb/trunk/source/Utility/PseudoTerminal.cpp Fri Nov 7 19:41:49 2014
@@ -31,6 +31,8 @@ char *ptsname(int fd) { return 0; }
pid_t fork(void) { return 0; }
pid_t setsid(void) { return 0; }
+#elif defined(__ANDROID_NDK__)
+#include "lldb/Host/android/Android.h"
#endif
using namespace lldb_utility;
Modified: lldb/trunk/tools/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/CMakeLists.txt?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/tools/CMakeLists.txt (original)
+++ lldb/trunk/tools/CMakeLists.txt Fri Nov 7 19:41:49 2014
@@ -2,7 +2,9 @@ if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
add_subdirectory(debugserver)
endif()
add_subdirectory(driver)
+if (NOT __ANDROID_NDK__)
add_subdirectory(lldb-mi)
+endif()
if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR CMAKE_SYSTEM_NAME MATCHES "Linux")
add_subdirectory(lldb-gdbserver)
endif()
Modified: lldb/trunk/tools/driver/Driver.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/driver/Driver.cpp?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/tools/driver/Driver.cpp (original)
+++ lldb/trunk/tools/driver/Driver.cpp Fri Nov 7 19:41:49 2014
@@ -19,6 +19,8 @@
#if defined(_WIN32)
#include <io.h>
#include <fcntl.h>
+#elif defined(__ANDROID_NDK__)
+#include <errno.h>
#else
#include <unistd.h>
#endif
Modified: lldb/trunk/tools/driver/Platform.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/driver/Platform.h?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/tools/driver/Platform.h (original)
+++ lldb/trunk/tools/driver/Platform.h Fri Nov 7 19:41:49 2014
@@ -101,15 +101,17 @@
#include <termios.h>
#include <unistd.h>
- #include <histedit.h>
#include <pthread.h>
#include <sys/time.h>
- #if defined(__FreeBSD__) || defined(__NetBSD__)
- #include <readline/readline.h>
- #else
- #include <editline/readline.h>
- #endif
+#if !defined(__ANDROID_NDK__)
+ #include <histedit.h>
+ #if defined(__FreeBSD__) || defined(__NetBSD__)
+ #include <readline/readline.h>
+ #else
+ #include <editline/readline.h>
+ #endif
+#endif
#endif
Modified: lldb/trunk/tools/lldb-gdbserver/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-gdbserver/CMakeLists.txt?rev=221570&r1=221569&r2=221570&view=diff
==============================================================================
--- lldb/trunk/tools/lldb-gdbserver/CMakeLists.txt (original)
+++ lldb/trunk/tools/lldb-gdbserver/CMakeLists.txt Fri Nov 7 19:41:49 2014
@@ -1,12 +1,40 @@
set(LLVM_NO_RTTI 1)
+if ( CMAKE_SYSTEM_NAME MATCHES "Linux" )
+include_directories(
+ ../../source/Plugins/Process/Linux
+ ../../source/Plugins/Process/POSIX
+ )
+endif ()
+
+if ( CMAKE_SYSTEM_NAME MATCHES "FreeBSD" )
+include_directories(
+ ../../source/Plugins/Process/FreeBSD
+ ../../source/Plugins/Process/POSIX
+ )
+endif ()
include_directories(../../source)
+include(../../cmake/LLDBDependencies.cmake)
+
+# have to include lldb and lldb-log files since those are not libraries and llgs depends on them
add_lldb_executable(lldb-gdbserver
lldb-gdbserver.cpp
+ ../../source/lldb-log.cpp
+ ../../source/lldb.cpp
)
-target_link_libraries(lldb-gdbserver liblldb)
+# The Darwin linker doesn't understand --start-group/--end-group.
+if (LLVM_COMPILER_IS_GCC_COMPATIBLE AND NOT "${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")
+ target_link_libraries(lldb-gdbserver
+ -Wl,--start-group ${LLDB_USED_LIBS} -Wl,--end-group)
+else()
+ target_link_libraries(lldb-gdbserver ${LLDB_USED_LIBS})
+endif()
+target_link_libraries(lldb-gdbserver ${CLANG_USED_LIBS})
+llvm_config(lldb-gdbserver ${LLVM_LINK_COMPONENTS})
+
+target_link_libraries(lldb-gdbserver ${LLDB_SYSTEM_LIBS})
set_target_properties(lldb-gdbserver PROPERTIES VERSION ${LLDB_VERSION})
More information about the lldb-commits
mailing list