From 7b93d662081fd54cb55d91151ab184ed08d298bd Mon Sep 17 00:00:00 2001 From: Tamas Berghammer Date: Thu, 10 Dec 2015 11:02:51 +0000 Subject: [PATCH] Switch to gold linker on android x86, x86_64, arm These architectures already using the gold linker for the android framework and switching to gold gives us the opportunity to enable ICF. Safe ICF (identical code folding) reduces the size of an optimized and striped binary by ~5%. Differential revision: http://reviews.llvm.org/D15379 llvm-svn: 255240 --- lldb/cmake/platforms/Android.cmake | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lldb/cmake/platforms/Android.cmake b/lldb/cmake/platforms/Android.cmake index 7e2c789..98b695b 100644 --- a/lldb/cmake/platforms/Android.cmake +++ b/lldb/cmake/platforms/Android.cmake @@ -121,6 +121,13 @@ elseif( ANDROID_ABI STREQUAL "mips" ) endif() endif() +# Use gold linker and enable safe ICF in case of x86, x86_64 and arm +if ( ANDROID_ABI STREQUAL "x86" OR + ANDROID_ABI STREQUAL "x86_64" OR + ANDROID_ABI STREQUAL "armeabi") + set( ANDROID_LINKER_FLAGS "${ANDROID_LINKER_FLAGS} -fuse-ld=gold -Wl,--icf=safe" ) +endif() + if( NOT LLVM_BUILD_STATIC ) # PIE is required for API 21+ so we enable it if we're not statically linking # unfortunately, it is not supported before API 16 so we need to do something -- 2.7.4