Index: llvm-3.1-3.1~+rc3/tools/llvm-shlib/Makefile
===================================================================
--- llvm-3.1-3.1~+rc3.orig/tools/llvm-shlib/Makefile	2012-05-20 16:17:40.498257510 +0200
+++ llvm-3.1-3.1~+rc3/tools/llvm-shlib/Makefile	2012-05-20 16:17:53.926257341 +0200
@@ -39,6 +39,12 @@
 LLVMLibsPaths   := $(IncludeInLibLlvm)
 
 $(LibName.SO): $(LLVMLibsPaths)
+	$(Echo) Linking $(BuildMode) $(SharedLibKindMessage) \
+	  $(LIBRARYNAME)$(SHLIBEXT)
+	$(Verb) $(Link) $(SharedLinkOptions) -o $@ $(ObjectsO) \
+	  $(ProjLibsOptions) $(LLVMLibsOptions) $(LIBS)
+	mv $(LibName.SO) $(LibName.SO).1
+	ln -s $(notdir $(LibName.SO)).1 $(LibName.SO)
 
 ifeq ($(HOST_OS),Darwin)
     # set dylib internal version number to llvmCore submission number
@@ -71,7 +77,7 @@
 
 ifeq ($(HOST_OS), $(filter $(HOST_OS), Linux FreeBSD GNU))
     # Add soname to the library.
-    LLVMLibsOptions += -Wl,--soname,lib$(LIBRARYNAME)$(SHLIBEXT)
+    LLVMLibsOptions += -Wl,--soname,lib$(LIBRARYNAME)$(SHLIBEXT) -Wl,-Bsymbolic-functions
 endif
 
 ifeq ($(HOST_OS), $(filter $(HOST_OS), Linux GNU))
