diff --git a/classes-recipe/rust-target-config.bbclass b/classes-recipe/rust-target-config.bbclass
index 33280ed..351c2d5 100644
--- a/classes-recipe/rust-target-config.bbclass
+++ b/classes-recipe/rust-target-config.bbclass
@@ -421,6 +421,13 @@ def rust_gen_target(d, thing, wd, arch):
         elif fpu == "hard":
             tspec['abi'] = "eabihf"
             tspec['llvm-floatabi'] = "hard"
+    if arch in ["mips", "mipsel"]:
+        tspec['abi'] = "o32"
+        tspec['llvm-abiname'] = "o32"
+    elif arch in ["mips64", "mips64el"]:
+        mips_abi = "n32" if abi == "n32" else "n64"
+        tspec['abi'] = mips_abi
+        tspec['llvm-abiname'] = mips_abi
     tspec['default-uwtable'] = True
     tspec['dynamic-linking'] = True
     tspec['executables'] = True
