[lld][ELF] Support LoongArch
This adds support for the LoongArch ELF psABI v2.00 [1] relocation model to LLD. The deprecated stack-machine-based psABI v1 relocs are not supported. The code is tested by successfully bootstrapping a Gentoo/LoongArch stage3, complete with common GNU userland tools and both the LLVM and GNU toolchains (GNU toolchain is present only for building glibc, LLVM+Clang+LLD are used for the rest). Large programs like QEMU are tested to work as well. [1]: https://loongson.github.io/LoongArch-Documentation/LoongArch-ELF-ABI-EN.html Reviewed By: MaskRay, SixWeining Differential Revision: https://reviews.llvm.org/D138135
This commit is contained in:
@@ -445,6 +445,8 @@ static std::pair<ELFKind, uint16_t> parseBfdName(StringRef s) {
|
||||
.Case("elf64-littleriscv", {ELF64LEKind, EM_RISCV})
|
||||
.Case("elf64-sparc", {ELF64BEKind, EM_SPARCV9})
|
||||
.Case("elf32-msp430", {ELF32LEKind, EM_MSP430})
|
||||
.Case("elf32-loongarch", {ELF32LEKind, EM_LOONGARCH})
|
||||
.Case("elf64-loongarch", {ELF64LEKind, EM_LOONGARCH})
|
||||
.Default({ELFNoneKind, EM_NONE});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user