[LLDB][LoongArch] ObjectFile: add a case for `EM_LOONGARCH`
authorHui Li <lihui@loongson.cn>
Fri, 13 Jan 2023 02:16:29 +0000 (10:16 +0800)
committerWeining Lu <luweining@loongson.cn>
Fri, 13 Jan 2023 02:17:31 +0000 (10:17 +0800)
This adds the jump slot mapping for LoongArch. This is a simple
change that ensures lldb running properly.

 Note that this problem was found only when CMake variables
 "DLLVM_ENABLE_ASSERTIONS=ON" is selected.

Without this patch,

```
$ build/bin/lldb  test

../ELFHeader::GetRelocationJumpSlotType() const: Assertion `false && "architecture not supported"' fail

```
With this patch

```
$ build/bin/lldb  test
(lldb) target create "test"
Current executable set to '../test' (loongarch64).

```

Reviewed By: SixWeining, DavidSpickett

Differential Revision: https://reviews.llvm.org/D141245

lldb/source/Plugins/ObjectFile/ELF/ELFHeader.cpp

index abda0cd..a6e385f 100644 (file)
@@ -211,6 +211,9 @@ unsigned ELFHeader::GetRelocationJumpSlotType() const {
   case EM_RISCV:
     slot = R_RISCV_JUMP_SLOT;
     break;
+  case EM_LOONGARCH:
+    slot = R_LARCH_JUMP_SLOT;
+    break;
   }
 
   return slot;