This increases the minimum required compiler versions to Clang 7 and GCC 8.1. This has been split out of #20744 (migration to std::filesystem
), as it’s also a requirement for some other changes, such as #20452 or #20457 which want to make use of std::from_chars
. As well as #20435, which is also std::filesystem
related. Given that the std::filesystem
changes are moving ahead, splitting out this change to let other PRs take advantage of the new requirements seems worthwhile.
Clang 7 has been available in Debian since Stretch (oldoldstable) and in Ubuntu since Bionic (18.04). GCC 8 has been available in Debian since Buster (oldstable) and in Ubuntu since Bionic (18.04). CentOS 8 also packages GCC 8.
The CI changes here give us one build with GCC 8, and another using Clang 7 on top of libc++.
Note that the minimum required libc++ in dependencies.md is unchanged as, at least for <filesystem>
, and the *_chars
use cases, libc++ 7 should be sufficient.
I’ve tested that building <filesystem>
code using Clang 7 & libc++ works. i.e clang++-7 -std=c++17 fs.cpp -stdlib=libc++ -lc++fs
. Also that building <filesystem>
code with Clang 7 and libstdc++ 8 works. i.e clang++-7 -std=c++17 fs.cpp -lstdc++fs
.