Fix hardclock with some versions of mingw64
Backport of 383433535 from the 1.3 branch
diff --git a/ChangeLog b/ChangeLog
index 69ecd60..3a4522c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,6 +7,8 @@
crash it remotely (found by Caj Larsson).
Bugfix
+ * Fix hardclock() (only used in the benchmarking program) with some
+ versions of mingw64 (found by kxjhlele).
* Fix warnings from mingw64 in timing.c (found by kxjklele).
* Fix potential unintended sign extension in asn1_get_len() on 64-bit
platforms (found with Coverity Scan).
diff --git a/library/timing.c b/library/timing.c
index 1ba02fe..e8be1c8 100644
--- a/library/timing.c
+++ b/library/timing.c
@@ -65,8 +65,10 @@
}
#endif
+/* some versions of mingw-64 have 32-bit longs even on x84_64 */
#if !defined(POLARSSL_HAVE_HARDCLOCK) && defined(POLARSSL_HAVE_ASM) && \
- defined(__GNUC__) && defined(__i386__)
+ defined(__GNUC__) && ( defined(__i386__) || ( \
+ ( defined(__amd64__) || defined( __x86_64__) ) && __SIZEOF_LONG__ == 4 ) )
#define POLARSSL_HAVE_HARDCLOCK