diff --git a/include/git2/thread-utils.h b/include/git2/thread-utils.h index 62e6199a4..e26876bea 100644 --- a/include/git2/thread-utils.h +++ b/include/git2/thread-utils.h @@ -31,48 +31,41 @@ * http://predef.sourceforge.net/precomp.html */ -#ifdef GIT_THREADS -# define GIT_HAS_TLS 1 +#define GIT_HAS_TLS 1 -/* No TLS in Cygwin */ -# if defined(__CHECKER__) || defined(__CYGWIN__) -# undef GIT_HAS_TLS -# define GIT_TLS +#if defined(__APPLE__) && defined(__MACH__) +# undef GIT_TLS +# define GIT_TLS -/* No TLS in Mach binaries for Mac OS X */ -# elif defined(__APPLE__) && defined(__MACH__) -# undef GIT_TLS -# define GIT_TLS +#elif defined(__GNUC__) || \ + defined(__SUNPRO_C) || \ + defined(__SUNPRO_CC) || \ + defined(__xlc__) || \ + defined(__xlC__) +# define GIT_TLS __thread -/* Normal TLS for GCC */ -# elif defined(__GNUC__) || \ - defined(__SUNPRO_C) || \ - defined(__SUNPRO_CC) || \ - defined(__xlc__) || \ - defined(__xlC__) -# define GIT_TLS __thread +#elif defined(__INTEL_COMPILER) +# if defined(_WIN32) || defined(_WIN32_CE) +# define GIT_TLS __declspec(thread) +# else +# define GIT_TLS __thread +# endif -/* ICC may run on Windows or Linux */ -# elif defined(__INTEL_COMPILER) -# if defined(_WIN32) || defined(_WIN32_CE) -# define GIT_TLS __declspec(thread) -# else -# define GIT_TLS __thread -# endif +#elif defined(_WIN32) || \ + defined(_WIN32_CE) || \ + defined(__BORLANDC__) +# define GIT_TLS __declspec(thread) -/* Declspec for MSVC in Win32 */ -# elif defined(_WIN32) || \ - defined(_WIN32_CE) || \ - defined(__BORLANDC__) -# define GIT_TLS __declspec(thread) +#else +# undef GIT_HAS_TLS +# define GIT_TLS /* nothing: tls vars are thread-global */ +#endif -/* Other platform; no TLS */ -# else -# undef GIT_HAS_TLS -# define GIT_TLS /* nothing: tls vars are thread-global */ -# endif -#else /* Disable TLS if libgit2 is not threadsafe */ -# define GIT_TLS -#endif /* GIT_THREADS */ +/* sparse and cygwin don't grok thread-local variables */ +#if defined(__CHECKER__) || defined(__CYGWIN__) +# undef GIT_HAS_TLS +# undef GIT_TLS +# define GIT_TLS +#endif #endif /* INCLUDE_git_thread_utils_h__ */ diff --git a/tests/resources/testrepo.git/packed-refs b/tests/resources/testrepo.git/packed-refs index ac97756cc..52f5e876f 100644 Binary files a/tests/resources/testrepo.git/packed-refs and b/tests/resources/testrepo.git/packed-refs differ diff --git a/tests/t10-refs.c b/tests/t10-refs.c index 33d284099..3c9df434c 100644 --- a/tests/t10-refs.c +++ b/tests/t10-refs.c @@ -931,24 +931,9 @@ BEGIN_TEST(list1, "try to list only the symbolic references") git_repository_free(repo); END_TEST -BEGIN_TEST(corruption0, "Check a the packed-refs file is not corrupted") - git_reference *ref; - git_repository *repo; - - must_pass(git_repository_open(&repo, "/Users/vicent/src/github/.git")); - - /* Lookup the reference */ - must_pass(git_reference_lookup(&ref, repo, "refs/heads/redcarpet-deploy")); - - /* Now that the reference is deleted... */ - must_pass(git_reference_delete(ref)); - - git_repository_free(repo); -END_TEST - BEGIN_SUITE(refs) -/* ADD_TEST(readtag0); + ADD_TEST(readtag0); ADD_TEST(readtag1); ADD_TEST(readsym0); @@ -986,6 +971,5 @@ BEGIN_SUITE(refs) ADD_TEST(delete0); ADD_TEST(list0); - ADD_TEST(list1); */ - ADD_TEST(corruption0); + ADD_TEST(list1); END_SUITE