Re: [PATCH v3] arm64: sysreg: make mrs_s and msr_s macros work with Clang and LTO

From: Mark Rutland
Date: Tue Apr 16 2019 - 13:08:17 EST


On Mon, Apr 15, 2019 at 10:22:27AM -0700, Nick Desaulniers wrote:
> On Mon, Apr 15, 2019 at 10:06 AM Mark Rutland <mark.rutland@xxxxxxx> wrote:
> > It would be nice if we could simply rely on a more recent binutils these
> > days, which supports the generic S<op0>_<op1>_<cn>_<Cm>_<op2> sysreg
> > definition. That would mean we could get rid of the whole msr_s/mrs_s
> > hack by turning that into a CPP macro which built that name.
> >
> > It looks like binutils has been able to do that since September 2014...
> >
> > Are folk using toolchains older than that to compile kernels?
>
> Do you have a link to a commit? If we can pinpoint the binutils
> version, that might help.

IIUC any version of binutils with commit:

df7b4545b2b49572 ("[PATCH/AArch64] Generic support for all system registers using mrs and msr")

... should be sufficent.

That's on gitweb at:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=df7b4545b2b49572ab63690c130df973af109615

> Also, I look forward to this patch for use of Clang's integrated
> assembler (regardless of LTO). I remember getting frustrated trying
> to figure out how to resolve this for both assemblers, and I had
> forgotten this solution existed.

Is this the only blocker for the integrated assembler?

Thanks,
Mark.