From e3fe32b6a4ecb340fa7c9802285711cc52b8a101 Mon Sep 17 00:00:00 2001 From: Ramsay Jones Date: Mon, 11 Jan 2010 21:11:55 +0000 Subject: [PATCH] Fix "'__thread' not at start of declaration" warnings (-Wextra) Signed-off-by: Ramsay Jones --- api.doxygen | 1 + src/git/common.h | 12 ++++++++++++ src/git/errors.h | 3 +-- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/api.doxygen b/api.doxygen index faf2dae9a..4d25aed8f 100644 --- a/api.doxygen +++ b/api.doxygen @@ -17,6 +17,7 @@ CASE_SENSE_NAMES = NO PREDEFINED = \ "GIT_EXTERN(x)=x" \ + "GIT_EXTERN_TLS(x)=x" \ "GIT_INLINE(x)=x" \ "GIT_BEGIN_DECL=" \ "GIT_END_DECL=" \ diff --git a/src/git/common.h b/src/git/common.h index c470e0e0a..375649f87 100644 --- a/src/git/common.h +++ b/src/git/common.h @@ -1,6 +1,8 @@ #ifndef INCLUDE_git_common_h__ #define INCLUDE_git_common_h__ +#include "thread-utils.h" + #ifdef __cplusplus # define GIT_BEGIN_DECL extern "C" { # define GIT_END_DECL } @@ -20,6 +22,16 @@ # define GIT_EXTERN(type) extern type #endif +/** Declare a public TLS symbol exported for application use. */ +#ifdef __GNUC__ +# define GIT_EXTERN_TLS(type) extern \ + __attribute__((visibility("default"))) \ + GIT_TLS \ + type +#else +# define GIT_EXTERN_TLS(type) extern GIT_TLS type +#endif + /** Declare a function as always inlined. */ #if defined(_MSC_VER) # define GIT_INLINE(type) static __inline type diff --git a/src/git/errors.h b/src/git/errors.h index 37870a4c5..8e9e423ed 100644 --- a/src/git/errors.h +++ b/src/git/errors.h @@ -2,7 +2,6 @@ #define INCLUDE_git_errors_h__ #include "common.h" -#include "thread-utils.h" /** * @file git/errors.h @@ -14,7 +13,7 @@ GIT_BEGIN_DECL /** The git errno. */ #if defined(GIT_TLS) -GIT_EXTERN(int) GIT_TLS git_errno; +GIT_EXTERN_TLS(int) git_errno; #elif defined(GIT_HAS_PTHREAD) # define git_errno (*git__errno_storage())