Browse Source

Merge topic 'android-link-exe'

295c8efa Android: Add missing link flags for device executables
Brad King 9 years ago
parent
commit
3d5ec790ee

+ 4 - 0
Modules/Platform/Android-Common.cmake

@@ -107,6 +107,7 @@ set(_ANDROID_ABI_INIT_CFLAGS "")
 set(_ANDROID_ABI_INIT_CFLAGS_DEBUG "")
 set(_ANDROID_ABI_INIT_CFLAGS_RELEASE "")
 set(_ANDROID_ABI_INIT_LDFLAGS "")
+set(_ANDROID_ABI_INIT_EXE_LDFLAGS "")
 
 macro(__android_compiler_common lang)
   if(_ANDROID_ABI_INIT_CFLAGS)
@@ -125,6 +126,9 @@ macro(__android_compiler_common lang)
       string(APPEND CMAKE_${t}_LINKER_FLAGS_INIT " ${_ANDROID_ABI_INIT_LDFLAGS}")
     endforeach()
   endif()
+  if(_ANDROID_ABI_INIT_EXE_LDFLAGS)
+    string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ${_ANDROID_ABI_INIT_EXE_LDFLAGS}")
+  endif()
 
   if(DEFINED _ANDROID_STL_EXCEPTIONS)
     if(_ANDROID_STL_EXCEPTIONS)

+ 3 - 0
Modules/Platform/Android/abi-arm64-v8a-Clang.cmake

@@ -5,4 +5,7 @@ string(APPEND _ANDROID_ABI_INIT_CFLAGS
   " -fpic"
   )
 
+# Suppress -Wl,-z,nocopyreloc flag on arm64-v8a
+set(_ANDROID_ABI_INIT_EXE_LDFLAGS_NO_nocopyreloc 1)
+
 include(Platform/Android/abi-common-Clang)

+ 3 - 0
Modules/Platform/Android/abi-arm64-v8a-GNU.cmake

@@ -3,4 +3,7 @@ string(APPEND _ANDROID_ABI_INIT_CFLAGS
   " -fpic"
   )
 
+# Suppress -Wl,-z,nocopyreloc flag on arm64-v8a
+set(_ANDROID_ABI_INIT_EXE_LDFLAGS_NO_nocopyreloc 1)
+
 include(Platform/Android/abi-common-GNU)

+ 6 - 0
Modules/Platform/Android/abi-common.cmake

@@ -2,3 +2,9 @@ string(APPEND _ANDROID_ABI_INIT_CFLAGS
   " -funwind-tables"
   " -no-canonical-prefixes"
   )
+
+string(APPEND _ANDROID_ABI_INIT_EXE_LDFLAGS " -Wl,--gc-sections")
+
+if(NOT _ANDROID_ABI_INIT_EXE_LDFLAGS_NO_nocopyreloc)
+  string(APPEND _ANDROID_ABI_INIT_EXE_LDFLAGS " -Wl,-z,nocopyreloc")
+endif()