Imported Upstream version 5.18.0.234

Former-commit-id: 8071ec1a8c5eaa9be24b41745add19297608001f
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2019-01-08 08:22:36 +00:00
parent f32dbaf0b2
commit 212f6bafcb
28494 changed files with 359 additions and 3867025 deletions

View File

@@ -1,4 +1,5 @@
include_directories(../../include)
option(ENABLE_NDK_ARM_WORKAROUND "Enable workaround for clang compiler in NDK r18+ failing to compile aes-armv4.S" OFF)
if (${ARCH} STREQUAL "x86_64")
set(
@@ -29,6 +30,22 @@ if (${ARCH} STREQUAL "arm")
bsaes-armv7.${ASM_EXT}
aesv8-armx.${ASM_EXT}
)
if (ENABLE_NDK_ARM_WORKAROUND)
#
# This isn't really *for* Apple, it's for clang in general, but somebody sometime
# ago chose to use __APPLE__ because back then clang was used by default only on
# macOS. Android NDK r18 and newer dropped gcc and uses only clang, thus the need
# to work around the build issue if the symbol is not defined:
#
# [...]sdks/builds/android-armeabi-v7a-debug/mono/btls/build-shared/boringssl/crypto/aes/aes-armv4.S:363:2: error: out of range immediate fixup value
# sub r10,r3,#asm_AES_encrypt-AES_Te @ Te
# ^
# [...]sdks/builds/android-armeabi-v7a-debug/mono/btls/build-shared/boringssl/crypto/aes/aes-armv4.S:1010:2: error: out of range immediate fixup value
# sub r10,r3,#asm_AES_decrypt-AES_Td @ Td
# ^
#
add_definitions(-D__APPLE__)
endif()
endif()
if (${ARCH} STREQUAL "aarch64")

View File

@@ -52,7 +52,13 @@ $code=<<___;
___
$code.=<<___ if ($flavour =~ /64/);
#if !defined(__clang__)
.arch armv8-a+crypto
.arch armv8-a+crypto
#elif defined(ANDROID) && defined(__clang__)
#if __clang_major__ > 3
.arch armv8-a+crypto
#else
.arch armv8-a+crypto,+neon
#endif
#endif
___
$code.=".arch armv7-a\n.fpu neon\n.code 32\n" if ($flavour !~ /64/);