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;