Cleanup our header inclusion order to ensure pthread.h is early

If we are using threads we need to make sure pthread.h comes
in before just about anything else.  Some platforms enable
macros that alter what other headers define.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
Shawn O. Pearce 2008-12-31 13:16:31 -08:00
parent 4260699b37
commit d44cfd460e
4 changed files with 14 additions and 6 deletions

View File

@ -1,8 +1,7 @@
#ifndef INCLUDE_common_h__ #ifndef INCLUDE_common_h__
#define INCLUDE_common_h__ #define INCLUDE_common_h__
#include "cc-compat.h" #include "git/thread-utils.h"
#include "errors.h"
#ifdef GIT_HAS_PTHREAD #ifdef GIT_HAS_PTHREAD
# include <pthread.h> # include <pthread.h>
@ -18,8 +17,9 @@
# define PRIuPTR "lu" # define PRIuPTR "lu"
#endif #endif
#include "cc-compat.h"
#include "util.h" #include "util.h"
#include "git/common.h" #include "errors.h"
#define GIT_PATH_MAX 4096 #define GIT_PATH_MAX 4096

View File

@ -2,7 +2,6 @@
#define INCLUDE_errors_h__ #define INCLUDE_errors_h__
#include "git/errors.h" #include "git/errors.h"
#include <stdlib.h>
/* convenience functions */ /* convenience functions */
GIT_INLINE(int) git_int_error(int code) GIT_INLINE(int) git_int_error(int code)

View File

@ -8,10 +8,10 @@
*/ */
#define GIT_HAS_TLS 1 #define GIT_HAS_TLS 1
#define GIT_HAS_PTHREAD 1
#if defined(__APPLE__) && defined(__MACH__) #if defined(__APPLE__) && defined(__MACH__)
# undef GIT_TLS # undef GIT_TLS
# define GIT_HAS_PTHREAD
#elif defined(__GNUC__) || \ #elif defined(__GNUC__) || \
defined(__SUNPRO_C) || \ defined(__SUNPRO_C) || \
@ -23,6 +23,7 @@
#elif defined(__INTEL_COMPILER) #elif defined(__INTEL_COMPILER)
# if defined(_WIN32) || defined(_WIN32_CE) # if defined(_WIN32) || defined(_WIN32_CE)
# define GIT_TLS __declspec(thread) # define GIT_TLS __declspec(thread)
# undef GIT_HAS_PTHREAD
# else # else
# define GIT_TLS __thread # define GIT_TLS __thread
# endif # endif
@ -31,9 +32,11 @@
defined(_WIN32_CE) || \ defined(_WIN32_CE) || \
defined(__BORLANDC__) defined(__BORLANDC__)
# define GIT_TLS __declspec(thread) # define GIT_TLS __declspec(thread)
# undef GIT_HAS_PTHREAD
#else #else
# undef GIT_HAS_TLS # undef GIT_HAS_TLS
# undef GIT_HAS_PTHREAD
# define GIT_TLS /* nothing: tls vars are thread-global */ # define GIT_TLS /* nothing: tls vars are thread-global */
#endif #endif
@ -44,4 +47,10 @@
# define GIT_TLS # define GIT_TLS
#endif #endif
#ifdef GIT_HAS_PTHREAD
# define GIT_THREADS 1
#else
# undef GIT_THREADS
#endif
#endif /* INCLUDE_git_thread_utils_h__ */ #endif /* INCLUDE_git_thread_utils_h__ */

View File

@ -23,9 +23,9 @@
* Boston, MA 02110-1301, USA. * Boston, MA 02110-1301, USA.
*/ */
#include "common.h"
#include "git/odb.h" #include "git/odb.h"
#include "git/zlib.h" #include "git/zlib.h"
#include "common.h"
#include "fileops.h" #include "fileops.h"
#include "hash.h" #include "hash.h"
#include <stdio.h> #include <stdio.h>