|
@@ -0,0 +1,44 @@
|
|
|
+From f0c02fb22bc277e2015a18e562b551ec7b3eed9e Mon Sep 17 00:00:00 2001
|
|
|
+From: Peter Seiderer <ps.report@gmx.net>
|
|
|
+Date: Sun, 16 Jul 2017 00:05:44 +0200
|
|
|
+Subject: [PATCH] Fix error attribute(target("+crc")) is unknown
|
|
|
+
|
|
|
+Task-number: QTBUG-61975
|
|
|
+Change-Id: I0b1b55c0737dad485b5ace8e6eb7cb842589453d
|
|
|
+---
|
|
|
+ src/corelib/tools/qhash.cpp | 2 ++
|
|
|
+ src/corelib/tools/qsimd_p.h | 3 +++
|
|
|
+ 2 files changed, 5 insertions(+)
|
|
|
+
|
|
|
+diff --git a/src/corelib/tools/qhash.cpp b/src/corelib/tools/qhash.cpp
|
|
|
+index 1f9c05c..bbf6efb 100644
|
|
|
+--- a/src/corelib/tools/qhash.cpp
|
|
|
++++ b/src/corelib/tools/qhash.cpp
|
|
|
+@@ -144,7 +144,9 @@ static inline bool hasFastCrc32()
|
|
|
+ }
|
|
|
+
|
|
|
+ template <typename Char>
|
|
|
++#if defined(__aarch64__)
|
|
|
+ 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 023a4b0..a85d572 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(__aarch64__)
|
|
|
++// only available on aarch64
|
|
|
+ #define QT_FUNCTION_TARGET_STRING_CRC32 "+crc"
|
|
|
++#endif
|
|
|
+ # include <arm_acle.h>
|
|
|
+ #endif
|
|
|
+
|
|
|
+--
|
|
|
+2.7.4
|
|
|
+
|