diff options
Diffstat (limited to 'src/corelib/tools')
-rw-r--r-- | src/corelib/tools/qhash.cpp | 2 | ||||
-rw-r--r-- | src/corelib/tools/qsimd_p.h | 3 | ||||
-rw-r--r-- | src/corelib/tools/qstring.h | 2 |
3 files changed, 6 insertions, 1 deletions
diff --git a/src/corelib/tools/qhash.cpp b/src/corelib/tools/qhash.cpp index 9d8c276cff..e336b7e618 100644 --- a/src/corelib/tools/qhash.cpp +++ b/src/corelib/tools/qhash.cpp @@ -140,7 +140,9 @@ static inline bool hasFastCrc32() } template <typename Char> +#if defined(Q_PROCESSOR_ARM_64) QT_FUNCTION_TARGET(CRC32) +#endif static uint crc32(const Char *ptr, size_t len, uint h) { // The crc32[whbd] instructions on Aarch64/Aarch32 calculate a 32-bit CRC32 checksum diff --git a/src/corelib/tools/qsimd_p.h b/src/corelib/tools/qsimd_p.h index 3ef29f4823..181da4f7de 100644 --- a/src/corelib/tools/qsimd_p.h +++ b/src/corelib/tools/qsimd_p.h @@ -326,7 +326,10 @@ #endif // AArch64/ARM64 #if defined(Q_PROCESSOR_ARM_V8) && defined(__ARM_FEATURE_CRC32) +#if defined(Q_PROCESSOR_ARM_64) +// only available on aarch64 #define QT_FUNCTION_TARGET_STRING_CRC32 "+crc" +#endif # include <arm_acle.h> #endif diff --git a/src/corelib/tools/qstring.h b/src/corelib/tools/qstring.h index a3e100c568..16472ff6b9 100644 --- a/src/corelib/tools/qstring.h +++ b/src/corelib/tools/qstring.h @@ -56,7 +56,7 @@ #include <string> #include <iterator> -#if defined(Q_OS_ANDROID) +#if defined(Q_OS_ANDROID) && !defined(ANDROID_HAS_WSTRING) // std::wstring is disabled on android's glibc, as bionic lacks certain features // that libstdc++ checks for (like mbcslen). namespace std |