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

From: Ingo Molnar
Date: Fri May 05 2017 - 13:50:55 EST



* Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:

> On Fri, May 05, 2017 at 01:11:47AM -0700, tip-bot for Matthias Kaehlcke wrote:
> > Commit-ID: 121843eb02a6e2fa30aefab64bfe183c97230c75
> > Gitweb: http://git.kernel.org/tip/121843eb02a6e2fa30aefab64bfe183c97230c75
> > Author: Matthias Kaehlcke <mka@xxxxxxxxxxxx>
> > AuthorDate: Mon, 1 May 2017 15:47:41 -0700
> > Committer: Ingo Molnar <mingo@xxxxxxxxxx>
> > CommitDate: Fri, 5 May 2017 08:31:05 +0200
> >
> > x86/mm/kaslr: Use the _ASM_MUL macro for multiplication to work around Clang incompatibility
> >
> > The constraint "rm" allows the compiler to put mix_const into memory.
> > When the input operand is a memory location then MUL needs an operand
> > size suffix, since Clang can't infer the multiplication width from the
> > operand.
>
> *sigh*, this is another shining example of how LLVM is a better, faster
> moving compiler?

Well, I don't like it - but we already have similar patterns to cover some asm
complications so I didn't mind. Apparently Clang is very close to being able to
build a working Linux kernel, right?

In that sense it would be unfair to expect it to not have various legacies,
missing features and quirks - just like the kernel has dozens of GCC related
workarounds.

Thanks,

Ingo