[all-commits] [llvm/llvm-project] c2c938: [LLDB][ObjectFileELF] Support LoongArch64 in Apply...

Lu Weining via All-commits all-commits at lists.llvm.org
Mon Mar 13 01:24:01 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c2c93873d1912a62685818ec9f4e020ee7a1c616
      https://github.com/llvm/llvm-project/commit/c2c93873d1912a62685818ec9f4e020ee7a1c616
  Author: Weining Lu <luweining at loongson.cn>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
    A lldb/test/Shell/ObjectFile/ELF/loongarch64-relocations.yaml

  Log Message:
  -----------
  [LLDB][ObjectFileELF] Support LoongArch64 in ApplyReloctions

Currently ApplyReloctions() deals with different archs' relocation types
together (in a single `switch() {..}`). I think it is incorrect because
different relocation types of different archs may have same enum values.

For example:
`R_LARCH_32` and `R_X86_64_64` are both `1`;
`R_LARCH_64` and `R_X86_64_PC32` are both `2`.

This patch handles each arch in seperate `switch()` to solve the enum
values conflict issue.

And a new test is added for LoongArch64.

Reviewed By: DavidSpickett

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


  Commit: 174a38f9c3167573e060493b94135cf453d27879
      https://github.com/llvm/llvm-project/commit/174a38f9c3167573e060493b94135cf453d27879
  Author: Weining Lu <luweining at loongson.cn>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
    M lldb/test/Shell/ObjectFile/ELF/loongarch64-relocations.yaml

  Log Message:
  -----------
  [LLDB][ObjectFileELF] Correct the return type of RelocOffset64 and RelocAddend64

According to `/usr/include/elf.h` and `lldb/source/Plugins/ObjectFile/ELF/ELFHeader.h`.
For ELF64 relocation, types of `offset` and `addend` should be `elf_addr` and `elf_sxword`.

Reviewed By: DavidSpickett

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


  Commit: 27705f456a3a03e7c935f7f573c05f742df4f272
      https://github.com/llvm/llvm-project/commit/27705f456a3a03e7c935f7f573c05f742df4f272
  Author: Weining Lu <luweining at loongson.cn>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp

  Log Message:
  -----------
  [LLDB][ObjectFileELF] Correct the return type of Reloc{Offset,Addend}32

This is a follow up of D145550.

I think Reloc{Type,Symbol}{32,64} can keep unchanged as they are not
directly returning a field of the ELFRel[a] struct.

Reviewed By: DavidSpickett

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


Compare: https://github.com/llvm/llvm-project/compare/dab077cae7b0...27705f456a3a


More information about the All-commits mailing list