Android: Add missing link flags for device executables
See `${ndk}/build/core/default-build-commands.mk` for link flags the NDK uses for executables. Add them to our default executable link flags. Suppress `nocopyreloc` on `arm64-v8a` because it does not work with some STL types. Closes: #16380
This commit is contained in:
parent
43f4326ece
commit
295c8efa35
|
@ -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)
|
||||
|
|
|
@ -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,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)
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue