[mips] Support elf32btsmipn32_fbsd / elf32ltsmipn32_fbsd emulations

Patch by Kyle Evans.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@372651 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/ELF/Driver.cpp b/ELF/Driver.cpp
index 21be17e..bae0479 100644
--- a/ELF/Driver.cpp
+++ b/ELF/Driver.cpp
@@ -978,7 +978,8 @@
     StringRef s = arg->getValue();
     std::tie(config->ekind, config->emachine, config->osabi) =
         parseEmulation(s);
-    config->mipsN32Abi = (s == "elf32btsmipn32" || s == "elf32ltsmipn32");
+    config->mipsN32Abi =
+        (s.startswith("elf32btsmipn32") || s.startswith("elf32ltsmipn32"));
     config->emulation = s;
   }
 
diff --git a/test/ELF/emulation-mips.s b/test/ELF/emulation-mips.s
index b468e8f..f6b04ca 100644
--- a/test/ELF/emulation-mips.s
+++ b/test/ELF/emulation-mips.s
@@ -90,6 +90,9 @@
 # RUN: ld.lld -m elf32btsmipn32 -e _start %tmipsn32 -o %t2mipsn32
 # RUN: llvm-readobj --file-headers %t2mipsn32 \
 # RUN:   | FileCheck -DOSABI=SystemV --check-prefix=MIPSN32 %s
+# RUN: ld.lld -m elf32btsmipn32_fbsd -e _start %tmipsn32 -o %t2mipsn32
+# RUN: llvm-readobj --file-headers %t2mipsn32 \
+# RUN:   | FileCheck -DOSABI=FreeBSD --check-prefix=MIPSN32 %s
 # RUN: ld.lld %tmipsn32 -e _start -o %t3mipsn32
 # RUN: llvm-readobj --file-headers %t3mipsn32 \
 # RUN:   | FileCheck -DOSABI=SystemV --check-prefix=MIPSN32 %s
@@ -127,6 +130,9 @@
 # RUN: ld.lld -m elf32ltsmipn32 -e _start %tmipsn32el -o %t2mipsn32el
 # RUN: llvm-readobj --file-headers %t2mipsn32el \
 # RUN:   | FileCheck -DOSABI=SystemV --check-prefix=MIPSN32EL %s
+# RUN: ld.lld -m elf32ltsmipn32_fbsd -e _start %tmipsn32el -o %t2mipsn32el
+# RUN: llvm-readobj --file-headers %t2mipsn32el \
+# RUN:   | FileCheck -DOSABI=FreeBSD --check-prefix=MIPSN32EL %s
 # RUN: ld.lld -melf32ltsmipn32 -e _start %tmipsn32el -o %t2mipsn32el
 # RUN: llvm-readobj --file-headers %t2mipsn32el \
 # RUN:   | FileCheck -DOSABI=SystemV --check-prefix=MIPSN32EL %s