-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[libc++] Updates the compilers used post LLVM-20 branching. #126564
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
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -128,14 +128,14 @@ Libc++ aims to support common compilers that implement the C++11 Standard. In or | |
good balance between stability for users and maintenance cost, testing coverage and development | ||
velocity, libc++ drops support for older compilers as newer ones are released. | ||
|
||
============ =============== ========================== ===================== | ||
Compiler Versions Restrictions Support policy | ||
============ =============== ========================== ===================== | ||
Clang 17, 18, 19-git latest two stable releases per `LLVM's release page <https://releases.llvm.org>`_ and the development version | ||
AppleClang 15 latest stable release per `Xcode's release page <https://developer.apple.com/documentation/xcode-release-notes>`_ | ||
Open XL 17.1 (AIX) latest stable release per `Open XL's documentation page <https://www.ibm.com/docs/en/openxl-c-and-cpp-aix>`_ | ||
GCC 14 In C++11 or later only latest stable release per `GCC's release page <https://gcc.gnu.org/releases.html>`_ | ||
============ =============== ========================== ===================== | ||
============ =================== ========================== ===================== | ||
Compiler Versions Restrictions Support policy | ||
============ =================== ========================== ===================== | ||
Clang 18, 19, 20, 21-git latest two stable releases per `LLVM's release page <https://releases.llvm.org>`_ and the development version | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't think we should document that we support more versions than we plan to support when this gets released. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I prefer to keep this as is, and drop 18 when we no longer support it. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. But we don't support it anymore. This is purely around for ease of migration. |
||
AppleClang 15 latest stable release per `Xcode's release page <https://developer.apple.com/documentation/xcode-release-notes>`_ | ||
Open XL 17.1 (AIX) latest stable release per `Open XL's documentation page <https://www.ibm.com/docs/en/openxl-c-and-cpp-aix>`_ | ||
GCC 14 In C++11 or later only latest stable release per `GCC's release page <https://gcc.gnu.org/releases.html>`_ | ||
============ =================== ========================== ===================== | ||
|
||
Libc++ also supports common platforms and architectures: | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,7 +12,7 @@ | |
// UNSUPPORTED: c++03 | ||
|
||
// TODO: Investigate these failures which break the CI. | ||
// UNSUPPORTED: clang-18, clang-19, clang-20 | ||
// UNSUPPORTED: clang-18, clang-19, clang-20, clang-21 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Let's revive the patch to remove this. It's been broken for 1.5 years. If nobody cares about it, we should get rid of it. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It's not been broken. Our CI is. This actually works for every clang version listed here, except in the CI. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do we know why it does not work in our CI? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. IIRC the last time it mostly worked except in the optimized build. I've disabled it for everything, since it was already the same day as the LLVM 20 branch and the test was already disabled for all the other versions. We should look into it and maybe just disable it for the optimized build. |
||
|
||
// The Android libc++ tests are run on a non-Android host, connected to an | ||
// Android device over adb. gdb needs special support to make this work (e.g. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we really need this? I don't think there is much code that requires clang-18-specific workarounds currently and it's really not clear to me when we should drop it otherwise.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes we need this. At the moment patches get actively backported to the release branch. Testing clang-18 enures that backporting is easy to do. Once LLVM 20.1.0 is released we can drop clang-18. (We've been doing this is the past too.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with @mordante, this is easy to keep around for a few weeks and it reduces friction when backporting.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't remember any rules on this and I though it was around for quite a while sometimes. If we agree that it can go after the initial release I'm fine with it, but I really don't want to keep it around for the whole cycle, since that would effectively extend our supported compilers by one version.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's indeed only for the release transition.