Use soname option when building a shared libpython. Fixes #701823.
diff --git a/Makefile.pre.in b/Makefile.pre.in
index 3257bf9..f8bcc92 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -344,7 +344,12 @@
 	$(RANLIB) $@
 
 libpython$(VERSION).so: $(LIBRARY_OBJS)
-	$(LDSHARED) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM)
+	if test $INSTSONAME != $LDLIBRARY; then \
+		$(LDSHARED) -Wl,-soname=$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \
+		$(LN) -f $(INSTSONAME) $@; \
+	else\
+		$(LDSHARED) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \
+	fi
 
 libpython$(VERSION).sl: $(LIBRARY_OBJS)
 	$(LDSHARED) -o $@ $(LIBRARY_OBJS) $(LIBC) $(LIBM)