Browse Source

Merge topic 'android-pic'

4c272adb Android: Link position-independent executables with proper flags
6205f179 Android: Set CMAKE_POSITION_INDEPENDENT_CODE automatically
Brad King 9 years ago
parent
commit
644ff572f7

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

@@ -1,10 +1,6 @@
 # <ndk>/build/core/toolchains/aarch64-linux-android-clang/setup.mk
 set(_ANDROID_ABI_CLANG_TARGET "aarch64-none-linux-android")
 
-string(APPEND _ANDROID_ABI_INIT_CFLAGS
-  " -fpic"
-  )
-
 # Suppress -Wl,-z,nocopyreloc flag on arm64-v8a
 set(_ANDROID_ABI_INIT_EXE_LDFLAGS_NO_nocopyreloc 1)
 

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

@@ -1,7 +1,4 @@
 # <ndk>/build/core/toolchains/aarch64-linux-android-4.9/setup.mk
-string(APPEND _ANDROID_ABI_INIT_CFLAGS
-  " -fpic"
-  )
 
 # Suppress -Wl,-z,nocopyreloc flag on arm64-v8a
 set(_ANDROID_ABI_INIT_EXE_LDFLAGS_NO_nocopyreloc 1)

+ 0 - 1
Modules/Platform/Android/abi-armeabi-Clang.cmake

@@ -14,7 +14,6 @@ endif()
 string(APPEND _ANDROID_ABI_INIT_CFLAGS
   " -msoft-float"
   " -mtune=xscale"
-  " -fpic"
   )
 
 include(Platform/Android/abi-common-Clang)

+ 0 - 1
Modules/Platform/Android/abi-armeabi-GNU.cmake

@@ -12,7 +12,6 @@ endif()
 string(APPEND _ANDROID_ABI_INIT_CFLAGS
   " -msoft-float"
   " -mtune=xscale"
-  " -fpic"
   )
 
 include(Platform/Android/abi-common-GNU)

+ 0 - 1
Modules/Platform/Android/abi-armeabi-v6-Clang.cmake

@@ -13,7 +13,6 @@ endif()
 
 string(APPEND _ANDROID_ABI_INIT_CFLAGS
   " -mfloat-abi=softfp"
-  " -fpic"
   )
 
 include(Platform/Android/abi-common-Clang)

+ 0 - 1
Modules/Platform/Android/abi-armeabi-v6-GNU.cmake

@@ -11,7 +11,6 @@ endif()
 
 string(APPEND _ANDROID_ABI_INIT_CFLAGS
   " -mfloat-abi=softfp"
-  " -fpic"
   )
 
 include(Platform/Android/abi-common-GNU)

+ 0 - 1
Modules/Platform/Android/abi-armeabi-v7a-Clang.cmake

@@ -23,7 +23,6 @@ string(APPEND _ANDROID_ABI_INIT_LDFLAGS
 
 string(APPEND _ANDROID_ABI_INIT_CFLAGS
   " -mfloat-abi=softfp"
-  " -fpic"
   )
 
 include(Platform/Android/abi-common-Clang)

+ 0 - 1
Modules/Platform/Android/abi-armeabi-v7a-GNU.cmake

@@ -17,7 +17,6 @@ endif()
 
 string(APPEND _ANDROID_ABI_INIT_CFLAGS
   " -mfloat-abi=softfp"
-  " -fpic"
   )
 
 string(APPEND _ANDROID_ABI_INIT_LDFLAGS

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

@@ -3,6 +3,15 @@ string(APPEND _ANDROID_ABI_INIT_CFLAGS
   " -no-canonical-prefixes"
   )
 
+if(NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE
+    AND NOT CMAKE_SYSTEM_VERSION VERSION_LESS 16)
+  set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+endif()
+
+if(CMAKE_POSITION_INDEPENDENT_CODE)
+  string(APPEND _ANDROID_ABI_INIT_EXE_LDFLAGS " -fPIE -pie")
+endif()
+
 string(APPEND _ANDROID_ABI_INIT_EXE_LDFLAGS " -Wl,--gc-sections")
 
 if(NOT _ANDROID_ABI_INIT_EXE_LDFLAGS_NO_nocopyreloc)

+ 0 - 4
Modules/Platform/Android/abi-mips-Clang.cmake

@@ -1,8 +1,4 @@
 # <ndk>/build/core/toolchains/mipsel-linux-android-clang/setup.mk
 set(_ANDROID_ABI_CLANG_TARGET "mipsel-none-linux-android")
 
-string(APPEND _ANDROID_ABI_INIT_CFLAGS
-  " -fpic"
-  )
-
 include(Platform/Android/abi-common-Clang)

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

@@ -1,6 +1,3 @@
 # <ndk>/build/core/toolchains/mipsel-linux-android-4.9/setup.mk
-string(APPEND _ANDROID_ABI_INIT_CFLAGS
-  " -fpic"
-  )
 
 include(Platform/Android/abi-common-GNU)

+ 0 - 4
Modules/Platform/Android/abi-mips64-Clang.cmake

@@ -1,8 +1,4 @@
 # <ndk>/build/core/toolchains/mips64el-linux-android-clang/setup.mk
 set(_ANDROID_ABI_CLANG_TARGET "mips64el-none-linux-android")
 
-string(APPEND _ANDROID_ABI_INIT_CFLAGS
-  " -fpic"
-  )
-
 include(Platform/Android/abi-common-Clang)

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

@@ -1,6 +1,3 @@
 # <ndk>/build/core/toolchains/mips64el-linux-android-4.9/setup.mk
-string(APPEND _ANDROID_ABI_INIT_CFLAGS
-  " -fpic"
-  )
 
 include(Platform/Android/abi-common-GNU)

+ 0 - 4
Modules/Platform/Android/abi-x86-Clang.cmake

@@ -1,8 +1,4 @@
 # <ndk>/build/core/toolchains/x86-clang/setup.mk
 set(_ANDROID_ABI_CLANG_TARGET "i686-none-linux-android")
 
-string(APPEND _ANDROID_ABI_INIT_CFLAGS
-  " -fPIC"
-  )
-
 include(Platform/Android/abi-common-Clang)

+ 0 - 4
Modules/Platform/Android/abi-x86_64-Clang.cmake

@@ -1,8 +1,4 @@
 # <ndk>/build/core/toolchains/x86_64-clang/setup.mk
 set(_ANDROID_ABI_CLANG_TARGET "x86_64-none-linux-android")
 
-string(APPEND _ANDROID_ABI_INIT_CFLAGS
-  " -fPIC"
-  )
-
 include(Platform/Android/abi-common-Clang)