Hello, I've been seeing reports sent to stable@vger.kernel.org of build tests from CKI. Would it be possible to get reports of kernels built with Clang?
Hello thank you for your inquiry! I'm cc'ing @veruu and @dzickusrh who can hopefully answer this question. FYI @veruu is on PTO for the next two weeks.
Hi, thanks for the question. Unfortunately it isn't on our roadmap for the next few months. While it would be possible with some re-works to the pipeline and our kernel.spec file, the small CKI team has other priorities currently.
/me going through the notifications after getting back
First, thanks for the interest @nickdesaulniers ! As Don already mentioned we don't have the ability as we've honestly didn't plan on supporting clang. Would you mind answering some specific questions so we can better estimate how much work it will be?
Which trees would you like to see reports for? Don already mentioned Fedora (basically mainline with a few patches and packaging bits on top) which would be really nice and make things for us easier, but maybe you are also interested in others?
If you are interested in other trees, is it better to use make CC=clang or make LLVM=1 ?
Which architectures are you interested in? We currently support x86_64, aarch64, ppc64le and s390x. Related, is cross compilation ok for non-x86_64?
Is LLVM/clang provided with Fedora rawhide good (currently llvm-11.0.0-0.10.rc6.fc34.x86_64 and clang-11.0.0-0.5.rc5.fc34.x86_64)? If not, where can we automatically get the correct packages?
Do you also want to run some tests on the compiled kernel and if so, do you have specific requests? Or is only compilation enough?
If Fedora's tree is the easiest, then I think that would be a great start. We do tests occasionally using the various distro's configs that we can find, but it's not continuous, and IIRC it's just the configs, not the trees being tested. Otherwise or additionally, mainline, linux-next, and the latest few branches of the stable tree are of interest.
make LLVM=1 is supported from v4.19.y branch of stable and newer (v4.19.y and v5.4.y of stable, mainline, -next). That's preferable as it tests more of the LLVM tools. make CC=clang for older branches of stable back to v4.4.y should work (v4.4.y, v4.9.y, v4.14.y) for x86_64 and aarch64.
All of those arches listed are of interest and build-able with Clang. I've been spamming refresh on the buildroot releases; the next release should contain work from folks at IBM to re-enable s390x support in buildroot which we rely on for minimal test images. We should be able to also build the 32b variants of those, and mips and riscv.
I think that should be good. In mainline, we error the build unless the clang version is 10.0.1 or newer. The point release manager, Tom Stellard, might be able to help with the Fedora releases.
Eventually, but I think build tests are a good first step. There's nothing specifically I had in mind for userspace testing; diversity of tests helps uncover curious bugs.
Ah, Nikolai Kondrashov mentioned he works with you all. (We meet weekly for KernelCI work).
Thanks, that helps! I'll create respective tickets in our tracker so we have everything ready for the next planning. The list of changes we'd have to do doesn't sound bad but we all know how that goes
Added all build traces to the linked merge request in case someone is already familiar with them, feel free to ask for more details for debugging if it's needed. I can jump on the IRC channel next week for better conversation. Have a nice weekend!
Enable clang for mainline, excluding s390x as it doesn't work with Fedora configs. I'll submit MR to https://gitlab.com/cki-project/pipeline-data/ for this and ask for missing information there.
@nickdesaulniers will reach out (in new issue) if there's anything new
Currently we offer email reports. You can pick whatever address to send the emails to. We're in the process of improving them so they will show e.g. known issues - that's currently not available and some more tooling needs to be adjusted so we can do that (we've already mentioned the feature delay because we're overloaded, so this is the same situation ).
In the hopefully not too far future we'll also have a publicly available dashboard anyone can look at.
Is it possible to limit the reports to clang builds? If not, no worries, we'd still be happy to have the coverage and reports. Our mailing list is clang-built-linux@googlegroups.com.