+From 380255a37895b31b06602505c831e925bc8daa5d Mon Sep 17 00:00:00 2001
+From: Dan Callaghan <dcallagh@redhat.com>
+Date: Tue, 8 Jan 2013 21:22:31 +1000
+Subject: [PATCH 2/2] hide symbols for private utf8 utility functions
+
+---
+ Makefile | 3 ++-
+ linenoise.h | 26 ++++++++++++++++----------
+ 2 files changed, 18 insertions(+), 11 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index a1a906f..0a42a7f 100644
+--- a/Makefile
++++ b/Makefile
+@@ -5,7 +5,8 @@ SONAME = liblinenoise.so.$(MAJOR_VERSION)
+ LIB = $(SONAME)$(EXTRA_VERSION)
+
+ export CFLAGS ?= -Os -g
+-CFLAGS += -Wall -fpic -DUSE_UTF8
++CFLAGS += -Wall -fpic -DUSE_UTF8 \
++ -fvisibility=hidden -DHAVE_VISIBILITY=1 -DBUILDING_LINENOISE=1
+ LIBDIR ?= /usr/lib
+ INCLUDEDIR ?= /usr/include
+
+diff --git a/linenoise.h b/linenoise.h
+index ab0058a..406aa3e 100644
+--- a/linenoise.h
++++ b/linenoise.h
+@@ -37,6 +37,12 @@
+ #ifndef __LINENOISE_H
+ #define __LINENOISE_H
+
++#if BUILDING_LINENOISE && HAVE_VISIBILITY
++#define LINENOISE_EXPORTED __attribute__((__visibility__("default")))
++#else
++#define LINENOISE_EXPORTED
++#endif
++
+ #ifndef NO_COMPLETION
+ typedef struct linenoiseCompletions {
+ size_t len;
+@@ -44,19 +50,19 @@ typedef struct linenoiseCompletions {
+ } linenoiseCompletions;
+
+ typedef void(linenoiseCompletionCallback)(const char *, linenoiseCompletions *);
+-void linenoiseSetCompletionCallback(linenoiseCompletionCallback *);
+-void linenoiseAddCompletion(linenoiseCompletions *, const char *);
++LINENOISE_EXPORTED void linenoiseSetCompletionCallback(linenoiseCompletionCallback *);
++LINENOISE_EXPORTED void linenoiseAddCompletion(linenoiseCompletions *, const char *);
+ #endif
+
+ typedef int(linenoiseCharacterCallback)(const char *, size_t, char);
+-void linenoiseSetCharacterCallback(linenoiseCharacterCallback *, char);
++LINENOISE_EXPORTED void linenoiseSetCharacterCallback(linenoiseCharacterCallback *, char);
+
+-char *linenoise(const char *prompt);
+-int linenoiseHistoryAdd(const char *line);
+-int linenoiseHistorySetMaxLen(int len);
+-int linenoiseHistorySave(const char *filename);
+-int linenoiseHistoryLoad(const char *filename);
+-void linenoiseHistoryFree(void);
+-char **linenoiseHistory(int *len);
++LINENOISE_EXPORTED char *linenoise(const char *prompt);
++LINENOISE_EXPORTED int linenoiseHistoryAdd(const char *line);
++LINENOISE_EXPORTED int linenoiseHistorySetMaxLen(int len);
++LINENOISE_EXPORTED int linenoiseHistorySave(const char *filename);
++LINENOISE_EXPORTED int linenoiseHistoryLoad(const char *filename);
++LINENOISE_EXPORTED void linenoiseHistoryFree(void);
++LINENOISE_EXPORTED char **linenoiseHistory(int *len);
+
+ #endif /* __LINENOISE_H */
+--
+1.7.11.7
+