- Issue #16754: Fix the incorrect shared library extension on linux. Introduce
  two makefile macros SHLIB_SUFFIX and EXT_SUFFIX. SO now has the value of
  SHLIB_SUFFIX again (as in 2.x and 3.1). The SO macro is removed in 3.4.
diff --git a/Makefile.pre.in b/Makefile.pre.in
index 1f3e840..e4d5090 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -125,7 +125,9 @@
 CONFINCLUDEPY=	$(CONFINCLUDEDIR)/python$(LDVERSION)
 
 # Symbols used for using shared libraries
-SO=		@SO@
+SHLIB_SUFFIX=	@SHLIB_SUFFIX@
+EXT_SUFFIX=	@EXT_SUFFIX@
+SO=		$(SHLIB_SUFFIX)
 LDSHARED=	@LDSHARED@ $(PY_LDFLAGS)
 BLDSHARED=	@BLDSHARED@ $(PY_LDFLAGS)
 LDCXXSHARED=	@LDCXXSHARED@
@@ -598,6 +600,11 @@
 		-DSOABI='"$(SOABI)"' \
 		-o $@ $(srcdir)/Python/dynload_shlib.c
 
+Python/dynload_hpux.o: $(srcdir)/Python/dynload_hpux.c Makefile
+	$(CC) -c $(PY_CORE_CFLAGS) \
+		-DSHLIB_EXT='"$(EXT_SUFFIX)"' \
+		-o $@ $(srcdir)/Python/dynload_hpux.c
+
 Python/sysmodule.o: $(srcdir)/Python/sysmodule.c Makefile
 	$(CC) -c $(PY_CORE_CFLAGS) \
 		-DABIFLAGS='"$(ABIFLAGS)"' \
@@ -1098,7 +1105,7 @@
 	done
 	@if test -d $(LIBRARY); then :; else \
 		if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \
-			if test "$(SO)" = .dll; then \
+			if test "$(SHLIB_SUFFIX)" = .dll; then \
 				$(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \
 			else \
 				$(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \