diff options
-rw-r--r-- | lld/ELF/Driver.cpp | 3 | ||||
-rw-r--r-- | lld/test/ELF/emulation-mips.s | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp index 21be17ec484..bae04791ec4 100644 --- a/lld/ELF/Driver.cpp +++ b/lld/ELF/Driver.cpp @@ -978,7 +978,8 @@ static void readConfigs(opt::InputArgList &args) { 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/lld/test/ELF/emulation-mips.s b/lld/test/ELF/emulation-mips.s index b468e8fc2a7..f6b04ca90ab 100644 --- a/lld/test/ELF/emulation-mips.s +++ b/lld/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 |