[Lldb-commits] [lldb] r242318 - Default to linking lldb-server statically for Android.

Chaoren Lin chaorenl at google.com
Wed Jul 15 12:22:09 PDT 2015


Author: chaoren
Date: Wed Jul 15 14:22:09 2015
New Revision: 242318

URL: http://llvm.org/viewvc/llvm-project?rev=242318&view=rev
Log:
Default to linking lldb-server statically for Android.

Reviewers: vharron, tberghammer

Subscribers: chaoren, labath, tberghammer, lldb-commits

Differential Revision: http://reviews.llvm.org/D10858

Modified:
    lldb/trunk/cmake/LLDBDependencies.cmake
    lldb/trunk/cmake/platforms/Android.cmake

Modified: lldb/trunk/cmake/LLDBDependencies.cmake
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/cmake/LLDBDependencies.cmake?rev=242318&r1=242317&r2=242318&view=diff
==============================================================================
--- lldb/trunk/cmake/LLDBDependencies.cmake (original)
+++ lldb/trunk/cmake/LLDBDependencies.cmake Wed Jul 15 14:22:09 2015
@@ -155,7 +155,12 @@ endif()
 list(APPEND LLDB_SYSTEM_LIBS ${system_libs})
 
 if (LLVM_BUILD_STATIC)
-  list(APPEND LLDB_SYSTEM_LIBS python2.7 z util termcap gpm ssl crypto bsd)
+  if (NOT LLDB_DISABLE_PYTHON)
+    list(APPEND LLDB_SYSTEM_LIBS python2.7 util)
+  endif()
+  if (NOT LLDB_DISABLE_CURSES)
+    list(APPEND LLDB_SYSTEM_LIBS gpm)
+  endif()
 endif()
 
 set( LLVM_LINK_COMPONENTS

Modified: lldb/trunk/cmake/platforms/Android.cmake
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/cmake/platforms/Android.cmake?rev=242318&r1=242317&r2=242318&view=diff
==============================================================================
--- lldb/trunk/cmake/platforms/Android.cmake (original)
+++ lldb/trunk/cmake/platforms/Android.cmake Wed Jul 15 14:22:09 2015
@@ -38,6 +38,15 @@ add_definitions( -DANDROID -D__ANDROID_N
 set( ANDROID True )
 set( __ANDROID_NDK__ True )
 
+# linking lldb-server statically for Android avoids the need to ship two
+# binaries (pie for API 21+ and non-pie for API 14-). It's possible to use
+# a non-pie shim on API 14-, but that requires lldb-server to dynamically export
+# its symbols, which significantly increases the binary size. Static linking, on
+# the other hand, has little to no effect on the binary size.
+if (NOT DEFINED LLVM_BUILD_STATIC)
+ set( LLVM_BUILD_STATIC True )
+endif()
+
 set( ANDROID_ABI "${ANDROID_ABI}" CACHE INTERNAL "Android Abi" FORCE )
 if( ANDROID_ABI STREQUAL "x86" )
  set( CMAKE_SYSTEM_PROCESSOR "i686" )
@@ -95,11 +104,6 @@ elseif( ANDROID_ABI STREQUAL "armeabi" )
  set( ANDROID_CXX_FLAGS "${ANDROID_CXX_FLAGS} -march=armv7-a" )
 endif()
 
-# PIE is required for API 21+ so we enable it
-# unfortunately, it is not supported before API 14 so we need to do something else there
-# see http://llvm.org/pr23457
-set( ANDROID_CXX_FLAGS "${ANDROID_CXX_FLAGS} -pie -fPIE" )
-
 # linker flags
 set( ANDROID_CXX_FLAGS    "${ANDROID_CXX_FLAGS} -fdata-sections -ffunction-sections" )
 set( ANDROID_LINKER_FLAGS "${ANDROID_LINKER_FLAGS} -Wl,--gc-sections" )





More information about the lldb-commits mailing list