# DP: Lookup extension modules with a multiarch suffix.

Index: b/configure.ac
===================================================================
--- a/configure.ac
+++ b/configure.ac
@@ -518,6 +518,8 @@
   ])
 fi
 
+MULTIARCH=$($CC --print-multiarch 2>/dev/null)
+AC_SUBST(MULTIARCH)
 
 AC_MSG_CHECKING([for -Wl,--no-as-needed])
 save_LDFLAGS="$LDFLAGS"
Index: b/Makefile.pre.in
===================================================================
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -91,6 +91,9 @@
 # Machine-dependent subdirectories
 MACHDEP=	@MACHDEP@
 
+# Multiarch directory (may be empty)
+MULTIARCH=	@MULTIARCH@
+
 # Install prefix for architecture-independent files
 prefix=		@prefix@
 
@@ -575,6 +578,7 @@
 
 Python/dynload_shlib.o: $(srcdir)/Python/dynload_shlib.c Makefile
 	$(CC) -c $(PY_CORE_CFLAGS) \
+		$(if $(MULTIARCH),-DMULTIARCH='"$(MULTIARCH)"') \
 		-DSOABI='"$(SOABI)"' \
 		-o $@ $(srcdir)/Python/dynload_shlib.c
 
Index: b/Python/dynload_shlib.c
===================================================================
--- a/Python/dynload_shlib.c
+++ b/Python/dynload_shlib.c
@@ -51,7 +51,13 @@
     {"module.exe", "rb", C_EXTENSION},
     {"MODULE.EXE", "rb", C_EXTENSION},
 #else  /* !__VMS */
+#ifdef MULTIARCH
+    {"." SOABI "-" MULTIARCH ".so", "rb", C_EXTENSION},
+#endif
     {"." SOABI ".so", "rb", C_EXTENSION},
+#ifdef MULTIARCH
+    {"module." SOABI "-" MULTIARCH ".so", "rb", C_EXTENSION},
+#endif
     {"module." SOABI ".so", "rb", C_EXTENSION},
     {".abi" PYTHON_ABI_STRING ".so", "rb", C_EXTENSION},
     {"module.abi" PYTHON_ABI_STRING ".so", "rb", C_EXTENSION},
