Commit 4f9339df943c53117a5fc8e86e2f38716ff3a668

Pierre Habouzit 2008-10-31T15:10:51

Hide non-exported symbols when linking the library Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

diff --git a/Makefile b/Makefile
index 116caa6..892bb29 100644
--- a/Makefile
+++ b/Makefile
@@ -6,6 +6,7 @@ CFLAGS = -g -O2
 
 BASIC_CFLAGS := -Isrc
 BASIC_CFLAGS += -DGIT__PRIVATE
+BASIC_CFLAGS += -fvisibility=hidden
 
 OBJS = $(patsubst %.c,%.o,$(wildcard src/*.c))
 HDRS = $(wildcard src/*.h)
diff --git a/src/git_common.h b/src/git_common.h
index 6e19d89..6d8e93b 100644
--- a/src/git_common.h
+++ b/src/git_common.h
@@ -56,7 +56,11 @@
 GIT_BEGIN_DECL
 
 /** Declare a public function exported for application use. */
-#define GIT_EXTERN(type) type
+#ifdef __GNUC__
+# define GIT_EXTERN(type) __attribute__((visibility("default"))) type
+#else
+# define GIT_EXTERN(type) type
+#endif
 
 /** Generic result code for any API call. */
 typedef int git_result_t;