[all-commits] [llvm/llvm-project] c9b1bd: [ELF] Support .rela.eh_frame with unordered r_offs...

Fangrui Song via All-commits all-commits at lists.llvm.org
Thu Apr 29 08:51:40 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c9b1bd10128956f51ea3b910b5d946a0ee7c2b0c
      https://github.com/llvm/llvm-project/commit/c9b1bd10128956f51ea3b910b5d946a0ee7c2b0c
  Author: Fangrui Song <i at maskray.me>
  Date:   2021-04-29 (Thu, 29 Apr 2021)

  Changed paths:
    M lld/ELF/InputSection.cpp
    M lld/ELF/Relocations.cpp
    M lld/ELF/Relocations.h
    A lld/test/ELF/eh-frame-unordered-r_offset.s

  Log Message:
  -----------
  [ELF] Support .rela.eh_frame with unordered r_offset values

GNU ld -r can create .rela.eh_frame with unordered r_offset values.
(With LLD, we can craft such a case by reordering sections in .eh_frame.)
This is currently unsupported and will trigger
`assert(pieces[i].inputOff <= off ...` in `OffsetGetter::get`
(the content is corrupted in a -DLLVM_ENABLE_ASSERTIONS=off build).
This patch supports this case.

Reviewed By: jhenderson

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




More information about the All-commits mailing list