diff --git a/ChangeLog b/ChangeLog index 69ecd603e..3a4522cc9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,8 @@ Security 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 1ba02fec1..e8be1c807 100644 --- a/library/timing.c +++ b/library/timing.c @@ -65,8 +65,10 @@ unsigned long hardclock( void ) } #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