-
Notifications
You must be signed in to change notification settings - Fork 333
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[lldb] Support for the new libc++ __compressed_pair layout in the nearest official release #9881
Comments
I intentionally didn't cherry-pick it because the libc++ change was scheduled to land in the LLVM 20 release, to give it some time for testing. Anyone building a toolchain based on top-of-tree libc++ on macOS has to go out of their way to do so. And at that point might as well also build LLDB. There were some compiler changes we had to make too, so in my opinion this is a bit too risky to cherry-pick. But if you have a concrete example of how it's causing issues, I'm happy to discuss (CC @adrian-prantl @ldionne ) |
That's true, and I'd prefer a custom build of LLDB as well. Unfortunately, this gets very tricky (if possible at all) when a project mixes Swift and C++. The Xcode's version of LLDB is built with a version of Swift incompatible with open-source swift toolchain builds. An attempt to debug a swift app built with the Xcode's toolchain using an open-source build of LLDB results in an error even if the versions are matched almost perfectly. Here's an example: the app is built with Xcode 16.1 toolchain with swift version 6.0.2.1, and LLDB is from swift-6.0.2-RELEASE toolchain from swift.org.
On the other hand, open-source toolchains can't be used to develop iOS targets, or at least I had no luck to make it work. (EDIT: after some further digging into the problem it seems OSS lacks only two things to make it usable with iOS: Also, even if we manage to build a version of LLDB that would be compatible with some specific version of the official swift-toolchain, it seems that Xcode does not provide a way to substitute LLDB.framework without switching the entire toolchain. This is certainly the least of the problems, but still a pain point. |
I see the new libc++ being used in the wild (for example, in chromium), which restructured some standard types (pr).
So, maybe we should cherry-pick this patch (and something else perhaps) into release/6.1 and stable/20240723?
сс @Michael137
The text was updated successfully, but these errors were encountered: