diff options
author | Pablo Sanabria <pablo.s.q1.4.1991@gmail.com> | 2017-03-25 19:18:29 -0300 |
---|---|---|
committer | Pablo Sanabria <pablo.s.q1.4.1991@gmail.com> | 2017-03-26 23:14:37 -0300 |
commit | d3f813a14e603dc53d1fac050ec07eda870fe081 (patch) | |
tree | 1e893373bb5350435cd8908ff560c85ac0c591f9 /linkhash.c | |
parent | 2cda677d06c43b9405e42cc6cc96589941b1e210 (diff) | |
download | json-c-d3f813a14e603dc53d1fac050ec07eda870fe081.tar.gz |
Fixed linkhash.c for MinGW
Added #ifdef conditions for MinGW because this compiler doesn't define
gcc atomic builtins, so __sync_val_compare_and_swap was not found
neither any of any __GCC_HAVE_SYNC_COMPARE_AND_SWAP_* definition
Diffstat (limited to 'linkhash.c')
-rw-r--r-- | linkhash.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -23,7 +23,7 @@ # include <endian.h> /* attempt to define endianness */ #endif -#ifdef _MSC_VER +#if defined(_MSC_VER) || defined(__MINGW32__) # define WIN32_LEAN_AND_MEAN # include <windows.h> /* Get InterlockedCompareExchange */ #endif @@ -452,7 +452,7 @@ static unsigned long lh_perllike_str_hash(const void *k) static unsigned long lh_char_hash(const void *k) { -#if defined _MSC_VER +#if defined _MSC_VER || defined __MINGW32__ #define RANDOM_SEED_TYPE LONG #else #define RANDOM_SEED_TYPE int @@ -474,7 +474,7 @@ static unsigned long lh_char_hash(const void *k) #endif #if defined USE_SYNC_COMPARE_AND_SWAP (void)__sync_val_compare_and_swap(&random_seed, -1, seed); -#elif defined _MSC_VER +#elif defined _MSC_VER || defined __MINGW32__ InterlockedCompareExchange(&random_seed, seed, -1); #else #warning "racy random seed initializtion if used by multiple threads" |