K 10 svn:author V 7 git2svn K 8 svn:date V 27 2021-12-22T10:10:59.882256Z K 7 svn:log V 1154 Reapply r310365 (by emaste): 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. Reported by: dim Reviewed by: dim Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D8869 Reapply r351610: Update libunwind custom frame register and deregister functions for FreeBSD: use the new doubly underscored names for unw_add_dynamic_fde and unw_remove_dynamic_fde. NOTE: this should be upstreamed... (cherry picked from commit 9f287522cec9feac040d7cb845a440a8f6b7b90e) Git Hash: 96ac81cdf020b9fc9d4ff6e01681cf46ba55d3d8 Git Author: dim@FreeBSD.org END