diff options
author | Edward Thomson <ethomson@github.com> | 2017-02-22 10:34:19 +0000 |
---|---|---|
committer | Edward Thomson <ethomson@github.com> | 2017-02-22 11:21:56 +0000 |
commit | aa5ea47f7382c85d22282a093674f37fe942f116 (patch) | |
tree | 6db50e7182a04a0563109bf4950755d26b29dc97 | |
parent | b13f0da153aa47fbf113c44e734be2be603870b6 (diff) | |
download | libgit2-aa5ea47f7382c85d22282a093674f37fe942f116.tar.gz |
Provide error on gcc < 4.1 when THREADSAFEethomson/ancient_gcc_not_threadsafe
Provide a descriptive error message when compiling THREADSAFE on gcc
versions < 4.1. We require the atomic primitives (eg
`__sync_synchronize`) that were introduced in that version.
(Note, clang setes `__GNUC__` but appears to set its version > 4.1.)
-rw-r--r-- | src/thread-utils.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/thread-utils.h b/src/thread-utils.h index f0161989f..2df2aeb99 100644 --- a/src/thread-utils.h +++ b/src/thread-utils.h @@ -7,6 +7,12 @@ #ifndef INCLUDE_thread_utils_h__ #define INCLUDE_thread_utils_h__ +#if defined(__GNUC__) && defined(GIT_THREADS) +# if (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 1)) +# error Atomic primitives do not exist on this version of gcc; configure libgit2 with -DTHREADSAFE=OFF +# endif +#endif + /* Common operations even if threading has been disabled */ typedef struct { #if defined(GIT_WIN32) |