Issue #4305: ctypes fails to build on mipsel-linux-gnu (detects mips
instead of mipsel)
diff --git a/Misc/NEWS b/Misc/NEWS
index beabc9b..6fdc253 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -255,6 +255,8 @@
 Library
 -------
 
+- Issue #4305: ctypes should now build again on mipsel-linux-gnu
+
 - Issue #1734234: Massively speedup ``unicodedata.normalize()`` when the
   string is already in normalized form, by performing a quick check beforehand.
   Original patch by Rauli Ruohonen.
diff --git a/Modules/_ctypes/libffi/configure b/Modules/_ctypes/libffi/configure
index de0b9ac..6984fc6 100755
--- a/Modules/_ctypes/libffi/configure
+++ b/Modules/_ctypes/libffi/configure
@@ -20426,10 +20426,10 @@
 	;;
 
   mips-sgi-irix5.* | mips-sgi-irix6.*)
-	TARGET=MIPS; TARGETDIR=mips
+	TARGET=MIPS_IRIX; TARGETDIR=mips
 	;;
   mips*-*-linux*)
-	TARGET=MIPS; TARGETDIR=mips
+	TARGET=MIPS_LINUX; TARGETDIR=mips
 	;;
 
   powerpc*-*-linux* | powerpc-*-sysv*)
@@ -20484,7 +20484,7 @@
    { (exit 1); exit 1; }; }
 fi
 
- if test x$TARGET = xMIPS; then
+ if expr x$TARGET : 'xMIPS' > /dev/null; then
   MIPS_TRUE=
   MIPS_FALSE='#'
 else
diff --git a/Modules/_ctypes/libffi/configure.ac b/Modules/_ctypes/libffi/configure.ac
index 57c161b..9470536 100644
--- a/Modules/_ctypes/libffi/configure.ac
+++ b/Modules/_ctypes/libffi/configure.ac
@@ -106,10 +106,10 @@
 	;;
 
   mips-sgi-irix5.* | mips-sgi-irix6.*)
-	TARGET=MIPS; TARGETDIR=mips
+	TARGET=MIPS_IRIX; TARGETDIR=mips
 	;;
   mips*-*-linux*)
-	TARGET=MIPS; TARGETDIR=mips
+	TARGET=MIPS_LINUX; TARGETDIR=mips
 	;;
 
   powerpc*-*-linux* | powerpc-*-sysv*)
@@ -162,7 +162,7 @@
   AC_MSG_ERROR(["libffi has not been ported to $host."])
 fi
 
-AM_CONDITIONAL(MIPS, test x$TARGET = xMIPS)
+AM_CONDITIONAL(MIPS,[expr x$TARGET : 'xMIPS' > /dev/null])
 AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
 AM_CONDITIONAL(X86, test x$TARGET = xX86)
 AM_CONDITIONAL(X86_FREEBSD, test x$TARGET = xX86_FREEBSD)