[all-commits] [llvm/llvm-project] 4c1bc8: [JITLink][MachO] Handle intra-block subtractor rel...

lhames via All-commits all-commits at lists.llvm.org
Sun Dec 24 14:07:12 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 4c1bc8e753c24df27ee8ccfc4041dd55e7c3a6ee
      https://github.com/llvm/llvm-project/commit/4c1bc8e753c24df27ee8ccfc4041dd55e7c3a6ee
  Author: Lang Hames <lhames at gmail.com>
  Date:   2023-12-24 (Sun, 24 Dec 2023)

  Changed paths:
    M llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp
    M llvm/lib/ExecutionEngine/JITLink/MachO_x86_64.cpp
    A llvm/test/ExecutionEngine/JITLink/AArch64/MachO_subtractor_single_block.yaml
    A llvm/test/ExecutionEngine/JITLink/x86-64/MachO_subtractor_single_block.yaml

  Log Message:
  -----------
  [JITLink][MachO] Handle intra-block subtractor relocations.

Previously the JITLink MachO backends (aarch64 and x86-64) only looked at the
fixup block to determine which symbol was being fixed up. This assumption breaks
if both symbols used in the subtractor are in the same block. The fix is to
check for such cases and use the offsets of each symbol to decide which is being
fixed up.

The issue only resulted in incorrect behavior for negative-delta relocations,
so the testcases use eh-frames with explicit edges for the CIE-pointer field in
FDEs (since these are negative-deltas).

rdar://119351329




More information about the All-commits mailing list