[all-commits] [llvm/llvm-project] 957334: [ExecutionEngine] Check for libunwind before calli...

Harald van Dijk via All-commits all-commits at lists.llvm.org
Sun Aug 15 05:36:26 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 957334382cd12ec07b46c0ddfdcc220731f6d80f
      https://github.com/llvm/llvm-project/commit/957334382cd12ec07b46c0ddfdcc220731f6d80f
  Author: Harald van Dijk <harald at gigawatt.nl>
  Date:   2021-08-15 (Sun, 15 Aug 2021)

  Changed paths:
    M llvm/cmake/config-ix.cmake
    M llvm/cmake/unwind.h
    M llvm/include/llvm/Config/config.h.cmake
    M llvm/lib/ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.cpp
    M llvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp

  Log Message:
  -----------
  [ExecutionEngine] Check for libunwind before calling __register_frame

libgcc and libunwind have different flavours of __register_frame. Both
 flavours are already correctly handled, except that the code to handle
the libunwind flavour is guarded by __APPLE__. This change uses the
presence of __unw_add_dynamic_fde in libunwind instead to detect whether
libunwind is used, rather than hardcoding it as Apple vs. non-Apple.

Fixes PR44074.

Thanks to Albert Jin <albert.jin at gmail.com> and Chris Schafmeister
<chris.schaf at verizon.net> for identifying the problem.

Reviewed By: lhames

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




More information about the All-commits mailing list