From 65de3c41bc3a328df0ce17f49c35c7dd72490f06 Mon Sep 17 00:00:00 2001 From: SchrodingerZhu Date: Sun, 8 Mar 2020 22:13:49 +0800 Subject: [PATCH 1/2] fix mingw --- CMakeLists.txt | 2 ++ src/ds/bits.h | 6 +++++- src/pal/pal_windows.h | 7 ++++++- src/test/usage.h | 4 +++- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ae939a9..e07a06d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -72,6 +72,8 @@ if(NOT MSVC) target_compile_options(snmalloc_lib INTERFACE -mcx16) elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "amd64") target_compile_options(snmalloc_lib INTERFACE -mcx16) + elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "AMD64") + target_compile_options(snmalloc_lib INTERFACE -mcx16) elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86") target_compile_options(snmalloc_lib INTERFACE -mcx16) # XXX elseif ARM? diff --git a/src/ds/bits.h b/src/ds/bits.h index f519071..a7a791f 100644 --- a/src/ds/bits.h +++ b/src/ds/bits.h @@ -13,7 +13,9 @@ #include #include #include - +#if defined(_WIN32) && defined(__GNUC__) +#define USE_CLZLL +#endif #ifdef pause # undef pause #endif @@ -75,6 +77,8 @@ namespace snmalloc return BITS - index - 1; # endif +#elif defined(USE_CLZLL) + return static_cast(__builtin_clzll(x)); #else return static_cast(__builtin_clzl(x)); #endif diff --git a/src/pal/pal_windows.h b/src/pal/pal_windows.h index 0f3b608..8c1fc27 100644 --- a/src/pal/pal_windows.h +++ b/src/pal/pal_windows.h @@ -5,8 +5,13 @@ #include "../mem/allocconfig.h" #ifdef _WIN32 +# ifndef _MSC_VER +# include +# endif # define WIN32_LEAN_AND_MEAN -# define NOMINMAX +# ifndef NOMINMAX +# define NOMINMAX +# endif # include // VirtualAlloc2 is exposed in RS5 headers. # ifdef NTDDI_WIN10_RS5 diff --git a/src/test/usage.h b/src/test/usage.h index c48a631..5cc290a 100644 --- a/src/test/usage.h +++ b/src/test/usage.h @@ -2,7 +2,9 @@ #if defined(_WIN32) # define WIN32_LEAN_AND_MEAN -# define NOMINMAX +# ifndef NOMINMAX +# define NOMINMAX +# endif # include // Needs to be included after windows.h # include From 8077c66a8e7ebd22ede1740dfb51845df615fdc2 Mon Sep 17 00:00:00 2001 From: SchrodingerZhu Date: Sun, 8 Mar 2020 22:33:23 +0800 Subject: [PATCH 2/2] format bits --- src/ds/bits.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/ds/bits.h b/src/ds/bits.h index a7a791f..71d4e6d 100644 --- a/src/ds/bits.h +++ b/src/ds/bits.h @@ -1,7 +1,6 @@ #pragma once #include -#include // #define USE_LZCNT @@ -14,7 +13,7 @@ #include #include #if defined(_WIN32) && defined(__GNUC__) -#define USE_CLZLL +# define USE_CLZLL #endif #ifdef pause # undef pause