Re: [tip:x86/urgent] x86/mm/kaslr: Use the _ASM_MUL macro for multiplication to work around Clang incompatibility

From: Ingo Molnar
Date: Sat May 06 2017 - 06:02:41 EST



* Matthias Kaehlcke <mka@xxxxxxxxxxxx> wrote:

> El Fri, May 05, 2017 at 12:30:20PM -0700 Linus Torvalds ha dit:
>
> > On Fri, May 5, 2017 at 11:44 AM, Matthias Kaehlcke <mka@xxxxxxxxxxxx> wrote:
> > >
> > > Indeed, I expect 4.12 (with this patch ...) to build with Clang for a
> > > x86 defconfig (with tons of warnings). ARM64 is very close.
> >
> > Does it actually *work*, rather than just build?
>
> Unfortunately I can't make an universal affirmation here. The systems for which
> I currently develop run a 4.4ish kernel with the clang patches on top. Both x86
> and ARM64 boot, the peripherals work and I haven't encountered any specific
> problems yet. Automated tests to assess or detect regressions are still pending.
>
> Does it work on all possible hardware configurations and use cases? Almost
> certainly not. However I think here is where having basic upstream support for
> clang can help by allowing more people to evaluate it on their systems without
> requiring a whole bunch of random out-of-tree patches, which also makes it
> easier to contribute back.

So my impression too was that Clang was 'very close' to being usable by users to
build a working Linux kernel in practice (on x86), and at this point the kernel
can certainly accomodate a Clang quirk or two to bridge the chicken-and-egg
problem of who supports whom first.

Note that I did NAK ugly Clang hacks in the recent past, so this tentative pledge
of support (on the x86 arch side) is not unconditional. Peter is also right about
proper asm goto compatibility probably being a preprequisite of any major distro
going to Clang.

( I see Clang also as a way for the GCC folks to get their act together - the
advantages of competition and all that. GCC has the better license after all,
IMHO. )

Thanks,

Ingo