HomeFreeBSD

MFC r310365: libunwind: make __{de,}register_frame compatible with libgcc API

Description

MFC r310365: libunwind: make __{de,}register_frame compatible with libgcc API

The libgcc register_frame and deregister_frame functions take a
pointer to a set of FDE/CIEs, terminated by an entry where length is 0.

In Apple's libunwind implementation the pointer is taken to be to a
single FDE. I suspect this was just an Apple bug, compensated by Apple-
specific code in LLVM.

See lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp and
http://lists.llvm.org/pipermail/llvm-dev/2013-April/061737.html
for more detail.

This change is based on the LLVM RTDyldMemoryManager.cpp. It should
later be changed to be alignment-safe.

Sponsored by: The FreeBSD Foundation

Details

Provenance
emasteAuthored on
Parents
rS312447: MFC r308006: libunwind: consistently add \n to log and trace messages
Branches
Unknown
Tags
Unknown