This is an archive of the discontinued LLVM Phabricator instance.

[libc++] Enable the synchronization library on Apple platforms
ClosedPublic

Authored by ldionne on Feb 16 2021, 8:30 AM.

Details

Summary

The synchronization library was marked as disabled on Apple platforms
up to now because we were not 100% sure that it was going to be ABI
stable. However, it's been some time since we shipped it in upstream
libc++ now and there's been no changes so far. This patch enables the
synchronization library on Apple platforms, and hence commits the ABI
stability as far as that vendor is concerned.

Diff Detail

Event Timeline

ldionne created this revision.Feb 16 2021, 8:30 AM
ldionne requested review of this revision.Feb 16 2021, 8:30 AM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 16 2021, 8:30 AM
Herald added a reviewer: Restricted Project. · View Herald Transcript

Can you please confirm that you don't foresee any ABI changes?

Ping @__simt__ @wash @Bigcheese Do we foresee any ABI changes? If not, we'd like to mark this as available on Apple platforms ASAP, because people have started seeing issues where codebases expect the synchronization library to be provided by AppleClang, but it's not. If we don't plan on making ABI breaking changes, I think it would be positive for the C++ ecosystem to ship it.

ldionne updated this revision to Diff 342528.May 3 2021, 1:29 PM

Rebase onto main

jfb added a subscriber: MadCoder.May 3 2021, 1:34 PM

I would recommend checking with @MadCoder about the implementation and ABI, since the kernel has Opinions on this. IIRC he looked at Olivier's original patch.

ldionne accepted this revision.Jun 10 2021, 11:24 AM
In D96790#2734482, @jfb wrote:

I would recommend checking with @MadCoder about the implementation and ABI, since the kernel has Opinions on this. IIRC he looked at Olivier's original patch.

Yup. What I'm mostly concerned about though is the ABI between the libc++ dylib and its headers. But it looks like this isn't going to change, so I'm going to commit this now.

This revision is now accepted and ready to land.Jun 10 2021, 11:24 AM
ldionne updated this revision to Diff 351226.Jun 10 2021, 11:25 AM

Rebase onto main with the new triple-based availability.