This is an archive of the discontinued LLVM Phabricator instance.

[CMake][Fuchsia] Use unstable libc++ ABI for Fuchsia toolchain
ClosedPublic

Authored by phosek on Sep 28 2018, 10:14 AM.

Details

Diff Detail

Repository
rC Clang

Event Timeline

phosek created this revision.Sep 28 2018, 10:14 AM
This revision is now accepted and ready to land.Sep 28 2018, 10:17 AM
kristina added a subscriber: kristina.EditedSep 28 2018, 3:26 PM

LGTM. Can we formalize ABIv2 as stable and make it distinct from unstable (soon to be ABIv3) or are there are any rough corners still left before ABIv2 and unstable can split in a feature freeze? I'm not an expert on libc++ related matters but @ldionne suggested that ABIv2 still wasn't ready on IRC (unless I misunderstood him).

LGTM. Can we formalize ABIv2 as stable and make it distinct from unstable (soon to be ABIv3) or are there are any rough corners still left before ABIv2 and unstable can split in a feature freeze? I'm not an expert on libc++ related matters but @ldionne suggested that ABIv2 still wasn't ready on IRC (unless I misunderstood him).

I don't think we've ever had plans to freeze the ABI v2 into something stable -- this is the first time I hear about it. I'm not saying it does not make sense, by the way, just that I haven't heard any plans about this. Does Fuchsia have a desire to stabilize the ABI of libc++?

We have no such desire. I think we're fine being the test subjects for
ABIv2 however.

My misunderstanding then, I was eventually hoping for a feature freeze of ABIv2 to a point where it's considered stable so any alterations to things like internal layout of std::string (ie. like SBO that came with ABIv2) happen in unstable/std::__3 as this allows for major ABI breaking changes to slowly start integrating into various other downstream projects. If it remains unstable then there is more hesitation when it comes to vendors switching ABIs; perhaps in a major OS release, while still providing ABIv1 libraries for compatibility. I'm not really involved in libc++ evolution but it seems logical that adoption of ABIv2 should begin somewhere (even if Fuchisa remains on unstable for the time being) since it does bring notable benefits.

I don't think we've ever had plans to freeze the ABI v2 into something stable -- this is the first time I hear about it. I'm not saying it does not make sense, by the way, just that I haven't heard any plans about this. Does Fuchsia have a desire to stabilize the ABI of libc++?

Well as I said, I have no say in how C++ language or standards or libc++(abi) evolve, but it seems to be the next logical step (though perhaps it could wait until Clang 8 and C++20 since that may require breaking changes which make sense to do within ABIv2 while it's still unstable). Otherwise aside from unreleased operating systems, having it formalized may encourage downstream vendors, especially Linux based ones, where fragmentation is normal to slowly begin adopting it.

Anyway, sorry for straying offtopic, patch itself LG.

phosek updated this revision to Diff 168061.Oct 2 2018, 5:54 PM
phosek retitled this revision from [CMake][Fuchsia] Use libc++ ABIv2 for Fuchsia toolchain to [CMake][Fuchsia] Use unstable libc++ ABI for Fuchsia toolchain.Oct 2 2018, 5:54 PM
phosek edited the summary of this revision. (Show Details)
phosek updated this revision to Diff 168064.Oct 2 2018, 6:18 PM
This revision was automatically updated to reflect the committed changes.