|
From: Bart V. A. <bva...@so...> - 2020-04-27 18:54:43
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=7359c5fd9f312cddd62146896558d8c9bd2bd4cf commit 7359c5fd9f312cddd62146896558d8c9bd2bd4cf Author: Martin Storsjö <ma...@ma...> Date: Mon Apr 27 21:31:51 2020 +0300 mingw: Fix arch detection ifdefs for non-x86 mingw platforms Don't assume that __MINGW32__ implies x86; Windows runs on ARM/ARM64 as well, and there are mingw toolchains that target those architectures. This mirrors how the MSVC parts of the same expressions are written, as (defined(_WIN32) && defined(_M_IX86)) and (defined(_WIN64) && defined(_M_X64)) - not relying on _WIN32/_WIN64 or __MINGW32__/__MINGW64__ alone to indicate architecture. Change the __MINGW64__ and _WIN64 ifdefs into plain __MINGW32__ and _WIN32 as well, for clarity - these defines mostly imply platform. Diff: --- include/valgrind.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/include/valgrind.h b/include/valgrind.h index c8b24a38e8..00e985dca8 100644 --- a/include/valgrind.h +++ b/include/valgrind.h @@ -131,12 +131,13 @@ # define PLAT_x86_darwin 1 #elif defined(__APPLE__) && defined(__x86_64__) # define PLAT_amd64_darwin 1 -#elif (defined(__MINGW32__) && !defined(__MINGW64__)) \ +#elif (defined(__MINGW32__) && defined(__i386__)) \ || defined(__CYGWIN32__) \ || (defined(_WIN32) && defined(_M_IX86)) # define PLAT_x86_win32 1 -#elif defined(__MINGW64__) \ - || (defined(_WIN64) && defined(_M_X64)) +#elif (defined(__MINGW32__) && defined(__x86_64__)) \ + || (defined(_WIN32) && defined(_M_X64)) +/* __MINGW32__ and _WIN32 are defined in 64 bit mode as well. */ # define PLAT_amd64_win64 1 #elif defined(__linux__) && defined(__i386__) # define PLAT_x86_linux 1 |