This is an archive of the discontinued LLVM Phabricator instance.

[libc++] Take more knobs into account when generating ABI lists
ClosedPublic

Authored by ldionne on Feb 14 2022, 12:20 PM.

Details

Summary

This change will make it possible to track exported symbols in more
configurations, notably the Apple system one, where we disable incomplete
features and the debug mode. Also, as a fly-by fix, shorten the name for
whether new is in libc++ or not.

Diff Detail

Event Timeline

ldionne created this revision.Feb 14 2022, 12:20 PM
ldionne requested review of this revision.Feb 14 2022, 12:20 PM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 14 2022, 12:20 PM
Herald added a reviewer: Restricted Project. · View Herald Transcript

I assume you'll add more abilist when the CI produces them?
I wonder whether we should use noincomplete or move them to the experimental library as you suggested earlier. I posted this question in Discord.

I assume you'll add more abilist when the CI produces them?

I think the only ABI list missing is the one for arm64 apple-system. All the other CI configurations I added check-abi-list to are reusing existing ABI list files.

I wonder whether we should use noincomplete or move them to the experimental library as you suggested earlier. I posted this question in Discord.

Replied on Discord, but TLDR is that I think we should handle that separately and avoid blocking this PR on it. Basically, what we want to do is merge the notion of incomplete features and experimental features, but that's a larger thing on its own and it should be coupled to compiler support for something like -fexperimental.

ldionne updated this revision to Diff 408634.Feb 14 2022, 3:02 PM

Don't run ABI list for sanitizers since the ABI is different in subtle ways (e.g. size of objects).
Add ABI list for arm64 apple-system configuration.

ldionne updated this revision to Diff 408849.Feb 15 2022, 6:29 AM

Rebase onto main -- that should fix CI.

Mordante accepted this revision as: Mordante.Feb 15 2022, 8:50 AM

LGTM after the CI passes.

ldionne accepted this revision.Feb 15 2022, 1:00 PM

The only failing job is generic-cxx20 on macOS x86_64. I'll re-run that locally on top of latest main to save CI resources, and I'll ship this if that passes. Thanks for taking a look!

This revision is now accepted and ready to land.Feb 15 2022, 1:00 PM
This revision was landed with ongoing or failed builds.Feb 15 2022, 1:11 PM
This revision was automatically updated to reflect the committed changes.
libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.nodebug.noincomplete.abilist