[PATCH] D45181: [RISCV] Add diff relocation support for RISC-V

Luís Marques via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu May 2 09:35:50 PDT 2019


luismarques added a comment.

In D45181#1470356 <https://reviews.llvm.org/D45181#1470356>, @rogfer01 wrote:

> James, Alex: Thanks a lot for the comments. I'll look into what I can do here.


This issue also affects the debug information in `.debug_info`. Relocations (`R_RISCV_ADD32` and `R_RISCV_SUB32`) are emitted for DWARF's compilation unit header Length field. While binutils accepts that, LLVM does not (and it's not trivial to fix that because `DWARFContext` currently assumes that only one relocation would exist per offset, while these label differences require two), which means that tools like `llvm-objdump` and `llvm-dwarfdump` don't correctly parse the debug information. Returning false in `requiresDiffExpressionRelocations` does not suffice to solve that issue because an absolute `R_RISCV_32` relocation is still emitted.

@rogfer01 Are you still looking into this? My efforts to fix the problem with the debug information would also touch this. How do you want to proceed?


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D45181/new/

https://reviews.llvm.org/D45181





More information about the llvm-commits mailing list