[libcxx-commits] [PATCH] D72543: [libcxxabi] Insert padding in __cxa_exception struct for compatibility
John McCall via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Jan 13 12:46:51 PST 2020
rjmccall added a comment.
In D72543#1817753 <https://reviews.llvm.org/D72543#1817753>, @compnerd wrote:
> Do we need to worry about compatibility? What happens if there is a mix between an old binary and a new binary?
To be clear, `libUnwind` accidentally introduced an ABI break by changing the alignment of `_Unwind_Exception` without making sure that layout didn't change in client code. So there's actually *three* eras here: old, intermediate, and new. The old and new ABIs agree in layout except about `sizeof cxa*exception`, which is not intended to be stable for code outside of the C++ runtime library, so the problem is just with code that might be have compiled with the intermediate code.
On Darwin, we happened to not have picked up a new `libUnwind` since the intermediate era began. (And as soon as we did, we ran into the ABI compatibility problem.)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D72543/new/
https://reviews.llvm.org/D72543
More information about the libcxx-commits
mailing list