On Thu, Jan 14, 2021 at 1:35 AM Nathan Chancellor <natechancellor@xxxxxxxxx> wrote: > > The most common question around building the Linux kernel with clang is > "does it work?" and the answer has always been "it depends on your > architecture, configuration, and LLVM version" with no hard answers for > users wanting to experiment. LLVM support has significantly improved > over the past couple of years, resulting in more architectures and > configurations supported, and continuous integration has made it easier > to see what works and what does not. > > Add a section that goes over what architectures are supported in the > current kernel version, how they should be built (with just clang or the > LLVM utilities as well), and the level of support they receive. This > will make it easier for people to try out building their kernel with > LLVM and reporting issues that come about from it. > Thanks, this was overdue and is definitely helpful for users and developers. For x86 64bit: Reviewed-by: Sedat Dilek <sedat.dilek@xxxxxxxxx> Together with "[PATCH] kbuild: check the minimum compiler version in Kconfig" this looks very good to me. /o\ - Sedat - [1] https://marc.info/?t=161059811000001&r=1&w=2 > Suggested-by: Miguel Ojeda <ojeda@xxxxxxxxxx> > Signed-off-by: Nathan Chancellor <natechancellor@xxxxxxxxx> > --- > Documentation/kbuild/llvm.rst | 44 +++++++++++++++++++++++++++++++++++ > 1 file changed, 44 insertions(+) > > diff --git a/Documentation/kbuild/llvm.rst b/Documentation/kbuild/llvm.rst > index 21c847890d03..b18401d2ba82 100644 > --- a/Documentation/kbuild/llvm.rst > +++ b/Documentation/kbuild/llvm.rst > @@ -63,6 +63,50 @@ They can be enabled individually. The full list of the parameters: :: > Currently, the integrated assembler is disabled by default. You can pass > ``LLVM_IAS=1`` to enable it. > > +Supported Architectures > +----------------------- > + > +LLVM does not target all of the architectures that Linux supports and > +just because a target is supported in LLVM does not mean that the kernel > +will build or work without any issues. Below is a general summary of > +architectures that currently work with ``CC=clang`` or ``LLVM=1``. Level > +of support corresponds to "S" values in the MAINTAINERS files. If an > +architecture is not present, it either means that LLVM does not target > +it or there are known issues. Using the latest stable version of LLVM or > +even the development tree will generally yield the best results. > +An architecture's ``defconfig`` is generally expected to work well, > +certain configurations may have problems that have not been uncovered > +yet. Bug reports are always welcome at the issue tracker below! > + > +.. list-table:: > + :widths: 10 10 10 > + :header-rows: 1 > + > + * - Architecture > + - Level of support > + - ``make`` command > + * - arm > + - Supported > + - ``LLVM=1`` > + * - arm64 > + - Supported > + - ``LLVM=1`` > + * - mips > + - Maintained > + - ``CC=clang`` > + * - powerpc > + - Maintained > + - ``CC=clang`` > + * - riscv > + - Maintained > + - ``CC=clang`` > + * - s390 > + - Maintained > + - ``CC=clang`` > + * - x86 > + - Supported > + - ``LLVM=1`` > + > Getting Help > ------------ > > > base-commit: 7c53f6b671f4aba70ff15e1b05148b10d58c2837 > -- > 2.30.0 > > -- > You received this message because you are subscribed to the Google Groups "Clang Built Linux" group. > To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-linux+unsubscribe@xxxxxxxxxxxxxxxx. > To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/20210114003447.7363-1-natechancellor%40gmail.com.