A number of threads have sparked discussions about minimum toolchain
requirements and a few of them have shown that we're very poor in
keeping track of our promises.
The main issue is that we're not publicly testing our minimum requirements.
We claim clang 3.1 can compile all LLVM projects, but no one has a
buildbot with that version, even with just LLVM and Clang. Recently,
libc++ has broken with clang 3.6, and that's because I've upgraded our
bot to 3.9 and stopped tracking.
We (Linaro) need to stay on top of what people are using, not LLVM's
minimum requirements, as we have found a number of issues when
migrating to the current LTS platform (Ubuntu Xenial), and that's what
people are using on ARM right now. So we cannot keep testing all
platforms, and I assume this is true for all companies that contribute
For that reason, I propose that the Foundation should set some funds
to have x86_64 machines (cloud instances are fine) with the minimum
requirements for at least one Linux build with minimum Clang and one
with minimum GCC.
I don't know if it's possible to have OSX on the cloud, or if it's
easy to have a Windows machine in the same way, but that'd be "in
addition" to the Linux machine. MSVC 2015 support can be tested by
those that have the license, I'm not proposing the Foundation to
The preference for Linux is that it's easier to deploy and control on
the cloud (and it's free), and we're testing the compilation process,
not the functionality (which should be tested elsewhere).
Having a single machine for both GCC and Clang builds should be ok,
since we don't need too many builds a day, and compilation errors are
easy to spot, even on a large commit range. Even if we had one build
each, every day, it would be fine. A dual core cloud instance with 4GB
of RAM would be more than enough.
Can the foundation spare resources for that usage?
If not, do we have another way to ensure the support of minimum
compilers to our projects?
Do we track sub-projects like LLD, LLDB, Compiler-RT and libc++
separately? We must track them, too.